{"id":36627369,"url":"https://github.com/frontapp/partner-channel-template","last_synced_at":"2026-01-12T09:33:32.440Z","repository":{"id":38301942,"uuid":"496805790","full_name":"frontapp/partner-channel-template","owner":"frontapp","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-12T16:00:59.000Z","size":55,"stargazers_count":4,"open_issues_count":0,"forks_count":5,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-11T22:32:50.331Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frontapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-05-26T23:53:00.000Z","updated_at":"2025-06-12T16:00:59.000Z","dependencies_parsed_at":"2022-09-05T03:41:40.906Z","dependency_job_id":"f25e6f30-ff4e-40ba-bb11-06630b7d18ea","html_url":"https://github.com/frontapp/partner-channel-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/frontapp/partner-channel-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frontapp%2Fpartner-channel-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frontapp%2Fpartner-channel-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frontapp%2Fpartner-channel-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frontapp%2Fpartner-channel-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frontapp","download_url":"https://codeload.github.com/frontapp/partner-channel-template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frontapp%2Fpartner-channel-template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337728,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-12T09:33:31.847Z","updated_at":"2026-01-12T09:33:32.435Z","avatar_url":"https://github.com/frontapp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# front-channel-template\nA simple, runnable reference channel for working with Front's [Application Channel API](https://dev.frontapp.com/reference/channel-api).\n\n## Disclaimer\nThis channel is a low-complexity reference implementation for integrating with Front's Application Channel API.\nThe code provided here does not reflect production-quality code nor should it be used as such.\nInstead, this is a standalone and runnable server for understanding how to build a channel with Front's API.\n\n## Tutorial\nThe Front Developer Portal provides an [in-depth tutorial](https://dev.frontapp.com/docs/getting-started-with-partner-channels) that details how to use this project to jump start the development of your channel integration. If you prefer to read a condensed quickstart for getting the project running, refer to the rest of this readme.\n\n## Using the channel\n###  Step 1: Install All Project Dependencies \n\n```shell\nnpm install --global yarn\nyarn install\n```\n\n### Step 2: Configuration\n\nYour channel can be configured by editing the necessary variables in `server.ts`.\nYou obtain the following values when you [create an application channel for an app](https://dev.frontapp.com/docs/create-and-manage-apps#create-an-app-channel) and then [view the OAuth credentials](https://dev.frontapp.com/docs/create-and-manage-apps#obtain-oauth-credentials-for-your-app) from Front:\n* `frontId` - The App UID of the app that contains your app channel feature, as defined in the **Settings** tab. Learn more about apps on our [Developer Portal](https://dev.frontapp.com/docs/create-and-manage-apps).\n* `frontSecret` - The secret key of the app that contains your app channel feature, as defined in the **Settings** tab.\n* `callbackHostname` - The hostname that this channel will use when generating webhooks. If running the server locally,\nwe recommend using a tool like [ngrok](https://ngrok.com/) to proxy requests to localhost. This variable should be the public URL of your `ngrok` proxy.\n\n**Tip:** You can leave the `frontUrl` with the default `https://api2.frontapp.com` value unless you've specifically been given a different subdomain to use by Front.\n\n### Step 3: Start the development server\n\n```shell\nyarn start\n```\n\nOnce you have the development server running alongside the host that generates webhooks (for development purposes, this might be an `ngrok` proxy), you can [connect your channel to an inbox in Front](https://dev.frontapp.com/docs/getting-started-with-partner-channels#step-4-add-your-channel-in-front).\n\n## Reading through the code\n\nThis channel is written for the sake of learning and understanding Front's Application Channel API.\nIt is written using [TypeScript](https://www.typescriptlang.org/), [Node](https://nodejs.org/en/), with\nroutes provided by [ExpressJs](https://expressjs.com/).\nWhile it is not necessary to be an expert in these technologies to understand the code, you may find it useful to briefly\nfamiliarize yourself with them.\n\nThe project contains three main files, `server.ts`, `routes.ts`, `front_connector.ts`.\n\n### `server.ts`\nThis file is relatively simple and simply contains the configuration values for our channel and initializing routes for the server.\n\n### `routes.ts`\nThis file contains routes for all of the Front-facing endpoints needed to implement a basic channel.\nRoutes associated with the OAuth flow are prefixed with `/oauth`, while Front related to message events\nfrom Front are prefixed with `/front`. Each route declaration contains a detailed comment about its functionality.\n\n### `front_connector.ts`\nThis file contains utility functions for making requests to Front's API from your channel.\n\n### Further reading\nRefer to our [in-depth tutorial](https://dev.frontapp.com/docs/getting-started-with-partner-channels) for a detailed walkthrough of this project and how you can use it to facilitate the development of a Front application channel integration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrontapp%2Fpartner-channel-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrontapp%2Fpartner-channel-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrontapp%2Fpartner-channel-template/lists"}