Teams app package
The Teams app is a manifest pointing at your deployment. Build it once per deployment (and again when the URL, client ID or version changes).
-
Build the package from the repository root:
Terminal window APP_URL=https://app.example.com ENTRA_CLIENT_ID=<client id> npm run teams:packageThe script also reads
apps/api/.envif it exists. It writesteams/build/<name>-teams-<version>.zipand a copy ofmanifest.jsonnext to it, and prints the app ID, domain and SSO resource. -
Upload the zip in the Teams admin center → Teams apps → Manage apps → Upload new app, or for testing in Teams itself under Apps → Manage your apps → Upload an app.
-
Make it available with an app setup policy (pin it for users or groups) or let people add it from Apps. Each customer organization does this in its own Teams admin center, so give their owners the zip (the app has no download link for it). See Organization settings.
Build settings
Section titled “Build settings”| Variable | Default | Notes |
|---|---|---|
APP_URL |
(required) | Public https:// URL of the app. Teams doesn’t load http. |
ENTRA_CLIENT_ID |
(required) | The app registration’s client ID. |
ENTRA_APP_ID_URI |
api://<APP_URL host>/<client id> |
SSO resource. Must equal the registration’s Application ID URI. |
MARKETING_URL |
APP_URL with a leading app. replaced by www. |
Developer website; the privacy and terms links are <MARKETING_URL>/privacy and <MARKETING_URL>/terms. |
TEAMS_APP_ID |
derived from the domain | The Teams app ID. The default is stable for a given domain, so rebuilt packages update the same app. |
TEAMS_APP_VERSION |
1.0.0 |
Increase it each time you upload a changed package. |
What’s in the manifest
Section titled “What’s in the manifest”- Name and description from the brand in
@pdfeditor/shared; generated color and outline icons. - Personal tabs: Editor (
/?inTeams=1), Signing (/signing?inTeams=1) and the standard About tab. - A configurable tab for channels, group chats and meetings (
/teams/config): whoever adds it chooses whether it opens the PDF editor or Signing. - Permissions:
identity. Valid domains: theAPP_URLhost. - Single sign-on (
webApplicationInfo): your client ID and the SSO resource above.