Skip to content

integrations/ticketing/front/dist/manifest

Variables

frontTicketingProviderManifest

const frontTicketingProviderManifest: {
  capabilities: {
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension?: boolean;
     label?: string;
     metadata?: Record<string, unknown>;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  category: string;
  channelAudiences: ("customer-facing" | "internal-support" | "mixed")[];
  coverage: {
     evidence: {
        label: string;
        url?: string;
     }[];
     notes: string[];
     scope:   | "support-workflow-subset"
        | "provider-api-subset"
        | "connector-required"
        | "local-protocol"
        | "full-provider-api";
  };
  credentialRequirements: {
     description?: string;
     id: string;
     label?: string;
     metadata?: Record<string, unknown>;
     required: boolean;
     scopes: string[];
  }[];
  directions: (
     | "receive-only"
     | "send-only"
     | "inbound-only"
     | "outbound-only"
    | "bidirectional")[];
  id: string;
  limitations: string[];
  maintainers: {
     name: string;
     type: "community" | "official" | "unknown" | "partner";
     url?: string;
  }[];
  metadata?: Record<string, unknown>;
  name: string;
  operations: {
     alias: string;
     audience?: "customer-facing" | "internal-support" | "mixed";
     audiences?: ("customer-facing" | "internal-support" | "mixed")[];
     capability: string;
     changesWorkflow?: boolean;
     description?: string;
     exposesSensitiveData?: boolean;
     extension: boolean;
     externallyVisible?: boolean;
     inputSchema?: unknown;
     inputSchemaName?: string;
     inputSchemaRef?: string;
     label?: string;
     metadata?: Record<string, unknown>;
     outputSchema?: unknown;
     outputSchemaName?: string;
     outputSchemaRef?: string;
     providerObject?: string;
     providerObjects?: {
        description?: string;
        kind: string;
        label?: string;
        metadata?: Record<string, unknown>;
        schemaName?: string;
     }[];
     providerOperation?: string;
     requiredPolicyIds?: string[];
     requiresApproval?: boolean;
     requiresCredential?: boolean;
     sideEffect?: boolean;
  }[];
  packageName: string;
  privacyNotes: string[];
  provider: string;
  trustLevel: "community" | "official" | "verified" | "experimental";
} & {
  capabilities: [{
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
   }, {
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
     }];
     requiresCredential: true;
   }, {
     capability: "handoff";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "ticketing";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Front Core API overview";
        url: "https://dev.frontapp.com/docs/core-api-overview";
      }, {
        label: "Front API overview";
        url: "https://help.front.com/en/articles/2482";
      }, {
        label: "Front Create message";
        url: "https://dev.frontapp.com/reference/create-message";
      }, {
        label: "Front Create conversation reply";
        url: "https://dev.frontapp.com/reference/create-message-reply";
     }];
     notes: ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     id: "front-base-url";
     label: "Front API base URL";
     metadata: {
        defaultValue: "https://api2.frontapp.com";
        requiredWhen: "using-built-in-rest-adapter";
     };
     required: false;
   }, {
     id: "front-api-access";
     label: "Front API access token or API key";
     metadata: {
        requiredWhen: "using-built-in-rest-adapter";
        scopeKind: "provider-oauth-scopes";
     };
     required: false;
     scopes: ["conversations:read", "conversations:write", "messages:send", "messages:read", "comments:write", "comments:read", "teammates:read"];
  }];
  directions: ["bidirectional"];
  id: "ticketing.front";
  limitations: ["Inbox IDs, channel IDs, teammate assignment, tags, message visibility, credentials, retries, pagination, and API base URL selection are SDK-user configuration. Multipart attachments are rejected by JSON operation helpers and require SDK-user direct multipart handling."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     checkedProviderSdk: {
        candidates: readonly [{
           checkedVersion: "0.8.2";
           package: "front-sdk";
           reason: "The npm package is deprecated and reports that its GitHub repository has been archived.";
           result: "rejected-deprecated-archived";
         }, {
           checkedVersion: "1.10.0";
           package: "@frontapp/plugin-sdk";
           reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations.";
           result: "not-runtime-core-api-client";
         }, {
           checkedVersion: "1.2.1";
           package: "front-chat-sdk";
           reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations.";
           result: "not-ticketing-core-api-client";
         }, {
           checkedVersion: "1.0.0-20260530.2-dev.646adf4";
           package: "@utdk/front";
           reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency.";
           result: "rejected-generated-preview-incomplete-runtime-client";
        }];
        checkedAt: "2026-06-25";
     };
     frontCoreChannelCoverage: {
        allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"];
        source: "Built-in Front Core and Channel REST adapter";
     };
     implementation: {
        manifestImport: "no-sdk-client-initialization";
        packageOwnedRestClient: true;
        providerClientInterface: "FrontTicketingProviderClient";
        providerClientOverride: true;
        runtimePackage: "@cognidesk/integration-ticketing-front";
        strategy: "provider-rest-adapter";
     };
     implementationStrategy: "provider-rest-adapter";
     issue: 35;
     sdkDecision: "no-official-sdk-rest-adapter";
  };
  name: "Front";
  operations: [{
     alias: "ticket.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     externallyVisible: true;
     providerObject: "ticket";
     providerOperation: "POST /channels/{channel_id}/messages";
     sideEffect: true;
   }, {
     alias: "ticket.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /conversations/{conversation_id}";
   }, {
     alias: "ticket.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "PATCH /conversations/{conversation_id}";
     sideEffect: true;
   }, {
     alias: "ticket.search";
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /conversations/search/{query}";
   }, {
     alias: "ticket.comment.create";
     capability: "send";
     exposesSensitiveData: true;
     externallyVisible: true;
     providerObject: "ticketComment";
     providerOperation: "POST /conversations/{conversation_id}/messages";
     sideEffect: true;
   }, {
     alias: "ticket.internalNote.create";
     capability: "draft";
     exposesSensitiveData: true;
     providerObject: "internalNote";
     providerOperation: "POST /conversations/{conversation_id}/comments";
     sideEffect: true;
   }, {
     alias: "front.message.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontMessage";
     providerOperation: "GET /conversations/{conversation_id}/messages";
   }, {
     alias: "front.comment.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontComment";
     providerOperation: "GET /conversations/{conversation_id}/comments";
   }, {
     alias: "front.readiness";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontTeammate";
     providerOperation: "GET /teammates";
  }];
  packageName: "@cognidesk/integration-ticketing-front";
  privacyNotes: ["Front conversations can contain customer messages, teammate comments, inbox routing, tags, links, and assignment context."];
  provider: "front";
  trustLevel: "official";
};

Type Declaration

Name Type
capabilities { audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension?: boolean; label?: string; metadata?: Record\<string, unknown>; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; requiresCredential?: boolean; sideEffect?: boolean; }[]
category string
channelAudiences ("customer-facing" | "internal-support" | "mixed")[]
coverage { evidence: { label: string; url?: string; }[]; notes: string[]; scope: | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"; }
coverage.evidence { label: string; url?: string; }[]
coverage.notes string[]
coverage.scope | "support-workflow-subset" | "provider-api-subset" | "connector-required" | "local-protocol" | "full-provider-api"
credentialRequirements { description?: string; id: string; label?: string; metadata?: Record\<string, unknown>; required: boolean; scopes: string[]; }[]
directions ( | "receive-only" | "send-only" | "inbound-only" | "outbound-only" | "bidirectional")[]
id string
limitations string[]
maintainers { name: string; type: "community" | "official" | "unknown" | "partner"; url?: string; }[]
metadata? Record\<string, unknown>
name string
operations { alias: string; audience?: "customer-facing" | "internal-support" | "mixed"; audiences?: ("customer-facing" | "internal-support" | "mixed")[]; capability: string; changesWorkflow?: boolean; description?: string; exposesSensitiveData?: boolean; extension: boolean; externallyVisible?: boolean; inputSchema?: unknown; inputSchemaName?: string; inputSchemaRef?: string; label?: string; metadata?: Record\<string, unknown>; outputSchema?: unknown; outputSchemaName?: string; outputSchemaRef?: string; providerObject?: string; providerObjects?: { description?: string; kind: string; label?: string; metadata?: Record\<string, unknown>; schemaName?: string; }[]; providerOperation?: string; requiredPolicyIds?: string[]; requiresApproval?: boolean; requiresCredential?: boolean; sideEffect?: boolean; }[]
packageName string
privacyNotes string[]
provider string
trustLevel "community" | "official" | "verified" | "experimental"

Type Declaration

Name Type
capabilities [{ capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; sideEffect: true; }, { capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; }, { capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }]; requiresCredential: true; sideEffect: true; }, { capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }]; requiresCredential: true; }, { capability: "handoff"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; sideEffect: true; }]
category "ticketing"
channelAudiences ["customer-facing", "internal-support", "mixed"]
coverage { evidence: [{ label: "Front Core API overview"; url: "https://dev.frontapp.com/docs/core-api-overview"; }, { label: "Front API overview"; url: "https://help.front.com/en/articles/2482"; }, { label: "Front Create message"; url: "https://dev.frontapp.com/reference/create-message"; }, { label: "Front Create conversation reply"; url: "https://dev.frontapp.com/reference/create-message-reply"; }]; notes: ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."]; scope: "support-workflow-subset"; }
coverage.evidence [{ label: "Front Core API overview"; url: "https://dev.frontapp.com/docs/core-api-overview"; }, { label: "Front API overview"; url: "https://help.front.com/en/articles/2482"; }, { label: "Front Create message"; url: "https://dev.frontapp.com/reference/create-message"; }, { label: "Front Create conversation reply"; url: "https://dev.frontapp.com/reference/create-message-reply"; }]
coverage.notes ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."]
coverage.scope "support-workflow-subset"
credentialRequirements [{ id: "front-base-url"; label: "Front API base URL"; metadata: { defaultValue: "https://api2.frontapp.com"; requiredWhen: "using-built-in-rest-adapter"; }; required: false; }, { id: "front-api-access"; label: "Front API access token or API key"; metadata: { requiredWhen: "using-built-in-rest-adapter"; scopeKind: "provider-oauth-scopes"; }; required: false; scopes: ["conversations:read", "conversations:write", "messages:send", "messages:read", "comments:write", "comments:read", "teammates:read"]; }]
directions ["bidirectional"]
id "ticketing.front"
limitations ["Inbox IDs, channel IDs, teammate assignment, tags, message visibility, credentials, retries, pagination, and API base URL selection are SDK-user configuration. Multipart attachments are rejected by JSON operation helpers and require SDK-user direct multipart handling."]
maintainers [{ name: "Cognidesk"; type: "official"; }]
metadata { checkedProviderSdk: { candidates: readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]; checkedAt: "2026-06-25"; }; frontCoreChannelCoverage: { allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]; source: "Built-in Front Core and Channel REST adapter"; }; implementation: { manifestImport: "no-sdk-client-initialization"; packageOwnedRestClient: true; providerClientInterface: "FrontTicketingProviderClient"; providerClientOverride: true; runtimePackage: "@cognidesk/integration-ticketing-front"; strategy: "provider-rest-adapter"; }; implementationStrategy: "provider-rest-adapter"; issue: 35; sdkDecision: "no-official-sdk-rest-adapter"; }
metadata.checkedProviderSdk { candidates: readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]; checkedAt: "2026-06-25"; }
metadata.checkedProviderSdk.candidates readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]
metadata.checkedProviderSdk.checkedAt "2026-06-25"
metadata.frontCoreChannelCoverage { allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]; source: "Built-in Front Core and Channel REST adapter"; }
metadata.frontCoreChannelCoverage.allowlistedOperations readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]
metadata.frontCoreChannelCoverage.source "Built-in Front Core and Channel REST adapter"
metadata.implementation { manifestImport: "no-sdk-client-initialization"; packageOwnedRestClient: true; providerClientInterface: "FrontTicketingProviderClient"; providerClientOverride: true; runtimePackage: "@cognidesk/integration-ticketing-front"; strategy: "provider-rest-adapter"; }
metadata.implementation.manifestImport "no-sdk-client-initialization"
metadata.implementation.packageOwnedRestClient true
metadata.implementation.providerClientInterface "FrontTicketingProviderClient"
metadata.implementation.providerClientOverride true
metadata.implementation.runtimePackage "@cognidesk/integration-ticketing-front"
metadata.implementation.strategy "provider-rest-adapter"
metadata.implementationStrategy "provider-rest-adapter"
metadata.issue 35
metadata.sdkDecision "no-official-sdk-rest-adapter"
name "Front"
operations [{ alias: "ticket.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; externallyVisible: true; providerObject: "ticket"; providerOperation: "POST /channels/{channel_id}/messages"; sideEffect: true; }, { alias: "ticket.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /conversations/{conversation_id}"; }, { alias: "ticket.update"; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "PATCH /conversations/{conversation_id}"; sideEffect: true; }, { alias: "ticket.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /conversations/search/{query}"; }, { alias: "ticket.comment.create"; capability: "send"; exposesSensitiveData: true; externallyVisible: true; providerObject: "ticketComment"; providerOperation: "POST /conversations/{conversation_id}/messages"; sideEffect: true; }, { alias: "ticket.internalNote.create"; capability: "draft"; exposesSensitiveData: true; providerObject: "internalNote"; providerOperation: "POST /conversations/{conversation_id}/comments"; sideEffect: true; }, { alias: "front.message.list"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontMessage"; providerOperation: "GET /conversations/{conversation_id}/messages"; }, { alias: "front.comment.list"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontComment"; providerOperation: "GET /conversations/{conversation_id}/comments"; }, { alias: "front.readiness"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontTeammate"; providerOperation: "GET /teammates"; }]
packageName "@cognidesk/integration-ticketing-front"
privacyNotes ["Front conversations can contain customer messages, teammate comments, inbox routing, tags, links, and assignment context."]
provider "front"
trustLevel "official"

frontTicketingProviderManifestInput

const frontTicketingProviderManifestInput: {
  capabilities: [{
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
   }, {
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
     }];
     requiresCredential: true;
     sideEffect: true;
   }, {
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
     }];
     requiresCredential: true;
   }, {
     capability: "handoff";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObjects: [{
        kind: "frontConversation";
        label: "Front Conversation";
      }, {
        kind: "frontMessage";
        label: "Front Message";
      }, {
        kind: "frontComment";
        label: "Front Comment";
     }];
     requiresCredential: true;
     sideEffect: true;
  }];
  category: "ticketing";
  channelAudiences: ["customer-facing", "internal-support", "mixed"];
  coverage: {
     evidence: [{
        label: "Front Core API overview";
        url: "https://dev.frontapp.com/docs/core-api-overview";
      }, {
        label: "Front API overview";
        url: "https://help.front.com/en/articles/2482";
      }, {
        label: "Front Create message";
        url: "https://dev.frontapp.com/reference/create-message";
      }, {
        label: "Front Create conversation reply";
        url: "https://dev.frontapp.com/reference/create-message-reply";
     }];
     notes: ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."];
     scope: "support-workflow-subset";
  };
  credentialRequirements: [{
     id: "front-base-url";
     label: "Front API base URL";
     metadata: {
        defaultValue: "https://api2.frontapp.com";
        requiredWhen: "using-built-in-rest-adapter";
     };
     required: false;
   }, {
     id: "front-api-access";
     label: "Front API access token or API key";
     metadata: {
        requiredWhen: "using-built-in-rest-adapter";
        scopeKind: "provider-oauth-scopes";
     };
     required: false;
     scopes: ["conversations:read", "conversations:write", "messages:send", "messages:read", "comments:write", "comments:read", "teammates:read"];
  }];
  directions: ["bidirectional"];
  id: "ticketing.front";
  limitations: ["Inbox IDs, channel IDs, teammate assignment, tags, message visibility, credentials, retries, pagination, and API base URL selection are SDK-user configuration. Multipart attachments are rejected by JSON operation helpers and require SDK-user direct multipart handling."];
  maintainers: [{
     name: "Cognidesk";
     type: "official";
  }];
  metadata: {
     checkedProviderSdk: {
        candidates: readonly [{
           checkedVersion: "0.8.2";
           package: "front-sdk";
           reason: "The npm package is deprecated and reports that its GitHub repository has been archived.";
           result: "rejected-deprecated-archived";
         }, {
           checkedVersion: "1.10.0";
           package: "@frontapp/plugin-sdk";
           reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations.";
           result: "not-runtime-core-api-client";
         }, {
           checkedVersion: "1.2.1";
           package: "front-chat-sdk";
           reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations.";
           result: "not-ticketing-core-api-client";
         }, {
           checkedVersion: "1.0.0-20260530.2-dev.646adf4";
           package: "@utdk/front";
           reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency.";
           result: "rejected-generated-preview-incomplete-runtime-client";
        }];
        checkedAt: "2026-06-25";
     };
     frontCoreChannelCoverage: {
        allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"];
        source: "Built-in Front Core and Channel REST adapter";
     };
     implementation: {
        manifestImport: "no-sdk-client-initialization";
        packageOwnedRestClient: true;
        providerClientInterface: "FrontTicketingProviderClient";
        providerClientOverride: true;
        runtimePackage: "@cognidesk/integration-ticketing-front";
        strategy: "provider-rest-adapter";
     };
     implementationStrategy: "provider-rest-adapter";
     issue: 35;
     sdkDecision: "no-official-sdk-rest-adapter";
  };
  name: "Front";
  operations: [{
     alias: "ticket.create";
     capability: "create-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     externallyVisible: true;
     providerObject: "ticket";
     providerOperation: "POST /channels/{channel_id}/messages";
     sideEffect: true;
   }, {
     alias: "ticket.read";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /conversations/{conversation_id}";
   }, {
     alias: "ticket.update";
     capability: "update-provider-object";
     changesWorkflow: true;
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "PATCH /conversations/{conversation_id}";
     sideEffect: true;
   }, {
     alias: "ticket.search";
     capability: "search-provider-object";
     exposesSensitiveData: true;
     providerObject: "ticket";
     providerOperation: "GET /conversations/search/{query}";
   }, {
     alias: "ticket.comment.create";
     capability: "send";
     exposesSensitiveData: true;
     externallyVisible: true;
     providerObject: "ticketComment";
     providerOperation: "POST /conversations/{conversation_id}/messages";
     sideEffect: true;
   }, {
     alias: "ticket.internalNote.create";
     capability: "draft";
     exposesSensitiveData: true;
     providerObject: "internalNote";
     providerOperation: "POST /conversations/{conversation_id}/comments";
     sideEffect: true;
   }, {
     alias: "front.message.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontMessage";
     providerOperation: "GET /conversations/{conversation_id}/messages";
   }, {
     alias: "front.comment.list";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontComment";
     providerOperation: "GET /conversations/{conversation_id}/comments";
   }, {
     alias: "front.readiness";
     capability: "read-provider-object";
     exposesSensitiveData: true;
     extension: true;
     providerObject: "frontTeammate";
     providerOperation: "GET /teammates";
  }];
  packageName: "@cognidesk/integration-ticketing-front";
  privacyNotes: ["Front conversations can contain customer messages, teammate comments, inbox routing, tags, links, and assignment context."];
  provider: "front";
  trustLevel: "official";
};

Type Declaration

Name Type
capabilities [{ capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; sideEffect: true; }, { capability: "read-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; }, { capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }]; requiresCredential: true; sideEffect: true; }, { capability: "search-provider-object"; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }]; requiresCredential: true; }, { capability: "handoff"; changesWorkflow: true; exposesSensitiveData: true; providerObjects: [{ kind: "frontConversation"; label: "Front Conversation"; }, { kind: "frontMessage"; label: "Front Message"; }, { kind: "frontComment"; label: "Front Comment"; }]; requiresCredential: true; sideEffect: true; }]
category "ticketing"
channelAudiences ["customer-facing", "internal-support", "mixed"]
coverage { evidence: [{ label: "Front Core API overview"; url: "https://dev.frontapp.com/docs/core-api-overview"; }, { label: "Front API overview"; url: "https://help.front.com/en/articles/2482"; }, { label: "Front Create message"; url: "https://dev.frontapp.com/reference/create-message"; }, { label: "Front Create conversation reply"; url: "https://dev.frontapp.com/reference/create-message-reply"; }]; notes: ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."]; scope: "support-workflow-subset"; }
coverage.evidence [{ label: "Front Core API overview"; url: "https://dev.frontapp.com/docs/core-api-overview"; }, { label: "Front API overview"; url: "https://help.front.com/en/articles/2482"; }, { label: "Front Create message"; url: "https://dev.frontapp.com/reference/create-message"; }, { label: "Front Create conversation reply"; url: "https://dev.frontapp.com/reference/create-message-reply"; }]
coverage.notes ["Runtime calls use the built-in Front REST adapter by default because no viable maintained backend Core/Channel API JavaScript client was verified.", "Coverage is limited to selected Front conversation, message, comment, search, update, and teammate readiness operations for support workflows.", "A host-provided FrontTicketingProviderClient can still override the built-in REST adapter.", "This package intentionally does not copy the old generated full Front Core/Channel API clone."]
coverage.scope "support-workflow-subset"
credentialRequirements [{ id: "front-base-url"; label: "Front API base URL"; metadata: { defaultValue: "https://api2.frontapp.com"; requiredWhen: "using-built-in-rest-adapter"; }; required: false; }, { id: "front-api-access"; label: "Front API access token or API key"; metadata: { requiredWhen: "using-built-in-rest-adapter"; scopeKind: "provider-oauth-scopes"; }; required: false; scopes: ["conversations:read", "conversations:write", "messages:send", "messages:read", "comments:write", "comments:read", "teammates:read"]; }]
directions ["bidirectional"]
id "ticketing.front"
limitations ["Inbox IDs, channel IDs, teammate assignment, tags, message visibility, credentials, retries, pagination, and API base URL selection are SDK-user configuration. Multipart attachments are rejected by JSON operation helpers and require SDK-user direct multipart handling."]
maintainers [{ name: "Cognidesk"; type: "official"; }]
metadata { checkedProviderSdk: { candidates: readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]; checkedAt: "2026-06-25"; }; frontCoreChannelCoverage: { allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]; source: "Built-in Front Core and Channel REST adapter"; }; implementation: { manifestImport: "no-sdk-client-initialization"; packageOwnedRestClient: true; providerClientInterface: "FrontTicketingProviderClient"; providerClientOverride: true; runtimePackage: "@cognidesk/integration-ticketing-front"; strategy: "provider-rest-adapter"; }; implementationStrategy: "provider-rest-adapter"; issue: 35; sdkDecision: "no-official-sdk-rest-adapter"; }
metadata.checkedProviderSdk { candidates: readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]; checkedAt: "2026-06-25"; }
metadata.checkedProviderSdk.candidates readonly [{ checkedVersion: "0.8.2"; package: "front-sdk"; reason: "The npm package is deprecated and reports that its GitHub repository has been archived."; result: "rejected-deprecated-archived"; }, { checkedVersion: "1.10.0"; package: "@frontapp/plugin-sdk"; reason: "The package is the Front UI/plugin SDK, not a backend Core/Channel API client for support ticketing operations."; result: "not-runtime-core-api-client"; }, { checkedVersion: "1.2.1"; package: "front-chat-sdk"; reason: "The package targets Front Chat SDK use cases rather than Core/Channel API ticketing operations."; result: "not-ticketing-core-api-client"; }, { checkedVersion: "1.0.0-20260530.2-dev.646adf4"; package: "@utdk/front"; reason: "The package is a third-party generated preview from Front's OpenAPI spec; the packed types expose an empty FrontClient and its source imports ../client.js outside the package contents, so it is not a viable maintained typed runtime client dependency."; result: "rejected-generated-preview-incomplete-runtime-client"; }]
metadata.checkedProviderSdk.checkedAt "2026-06-25"
metadata.frontCoreChannelCoverage { allowlistedOperations: readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]; source: "Built-in Front Core and Channel REST adapter"; }
metadata.frontCoreChannelCoverage.allowlistedOperations readonly ["messages.create", "conversations.reply", "conversations.read", "conversations.update", "conversations.search", "conversation_messages.list", "comments.create", "comments.list", "teammates.list"]
metadata.frontCoreChannelCoverage.source "Built-in Front Core and Channel REST adapter"
metadata.implementation { manifestImport: "no-sdk-client-initialization"; packageOwnedRestClient: true; providerClientInterface: "FrontTicketingProviderClient"; providerClientOverride: true; runtimePackage: "@cognidesk/integration-ticketing-front"; strategy: "provider-rest-adapter"; }
metadata.implementation.manifestImport "no-sdk-client-initialization"
metadata.implementation.packageOwnedRestClient true
metadata.implementation.providerClientInterface "FrontTicketingProviderClient"
metadata.implementation.providerClientOverride true
metadata.implementation.runtimePackage "@cognidesk/integration-ticketing-front"
metadata.implementation.strategy "provider-rest-adapter"
metadata.implementationStrategy "provider-rest-adapter"
metadata.issue 35
metadata.sdkDecision "no-official-sdk-rest-adapter"
name "Front"
operations [{ alias: "ticket.create"; capability: "create-provider-object"; changesWorkflow: true; exposesSensitiveData: true; externallyVisible: true; providerObject: "ticket"; providerOperation: "POST /channels/{channel_id}/messages"; sideEffect: true; }, { alias: "ticket.read"; capability: "read-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /conversations/{conversation_id}"; }, { alias: "ticket.update"; capability: "update-provider-object"; changesWorkflow: true; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "PATCH /conversations/{conversation_id}"; sideEffect: true; }, { alias: "ticket.search"; capability: "search-provider-object"; exposesSensitiveData: true; providerObject: "ticket"; providerOperation: "GET /conversations/search/{query}"; }, { alias: "ticket.comment.create"; capability: "send"; exposesSensitiveData: true; externallyVisible: true; providerObject: "ticketComment"; providerOperation: "POST /conversations/{conversation_id}/messages"; sideEffect: true; }, { alias: "ticket.internalNote.create"; capability: "draft"; exposesSensitiveData: true; providerObject: "internalNote"; providerOperation: "POST /conversations/{conversation_id}/comments"; sideEffect: true; }, { alias: "front.message.list"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontMessage"; providerOperation: "GET /conversations/{conversation_id}/messages"; }, { alias: "front.comment.list"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontComment"; providerOperation: "GET /conversations/{conversation_id}/comments"; }, { alias: "front.readiness"; capability: "read-provider-object"; exposesSensitiveData: true; extension: true; providerObject: "frontTeammate"; providerOperation: "GET /teammates"; }]
packageName "@cognidesk/integration-ticketing-front"
privacyNotes ["Front conversations can contain customer messages, teammate comments, inbox routing, tags, links, and assignment context."]
provider "front"
trustLevel "official"