@teamwork/get-bearer-token
Version:
CLI tool to obtain bearer tokens for Teamwork API using OAuth flow
80 lines (54 loc) • 2.06 kB
Markdown
# Teamwork Bearer Token Generator
## Overview
CLI tool that generates OAuth bearer tokens for the Teamwork API. Opens your system browser for Teamwork Launchpad authentication (including Google SSO), then provides a web UI to manage developer apps and generate tokens.
**Key features:**
- Secure OAuth authentication via Teamwork Launchpad (Google SSO supported)
- Automatic account and region detection
- Create and manage developer apps
- Generate bearer tokens with one click
- No configuration required
## Usage
```bash
npx --yes @teamwork/get-bearer-token@latest
```
Or install globally:
```bash
npm install -g @teamwork/get-bearer-token
get-bearer-token
```
The CLI starts a local server on port 8123, opens your browser for authentication, and serves a web UI for managing apps and tokens. Press Ctrl+C to stop.
## Configuration for Staging / Custom Instances
By default the tool authenticates against production Teamwork using the built-in Timer app OAuth credentials. To target a staging or custom Teamwork instance, set these environment variables (or add them to a `.env` file):
| Variable | Description | Default |
|---|---|---|
| `TEAMWORK_URL` | Base URL of the Teamwork instance | `https://www.teamwork.com` |
| `TEAMWORK_CLIENT_ID` | OAuth app client ID | Timer app production ID |
| `TEAMWORK_CLIENT_SECRET` | OAuth app client secret | Timer app production secret |
> **Note:** The OAuth app on your target instance must have `http://127.0.0.1:8123` listed as an allowed redirect URI.
Example:
```bash
TEAMWORK_URL=https://staging.teamwork.com \
TEAMWORK_CLIENT_ID=your-client-id \
TEAMWORK_CLIENT_SECRET=your-client-secret \
npx --yes @teamwork/get-bearer-token@latest
```
## Development
### Prerequisites
- Node.js 22+
### Setup
```bash
git clone <repository-url>
cd get-bearer-token
npm install
```
### Running
```bash
npm start
```
## Deployment
Push a version tag to trigger npm publish via GitHub Actions:
```bash
git tag 1.0.0
git push origin 1.0.0
```
Use `-rc` suffix for beta releases (e.g. `1.0.0-rc0`).