# @teamwork/get-bearer-token

Interactive CLI tool to obtain bearer tokens for the Teamwork API using OAuth flow.

## Quick Start

Have nodejs >18 installed.

```bash
npx @teamwork/get-bearer-token
```

That's it! The tool will guide you through the rest.

## What It Does

1. **Prompts for your Teamwork URL** (supports custom domains and all regions)
2. **Shows you the exact Developer Portal URL** for your setup
3. **Asks for your API credentials** (Client ID, Client Secret)
4. **Opens your browser** for OAuth authentication
5. **Displays your bearer token** with usage examples

## Prerequisites

You need to register an app in the Teamwork Developer Portal first. The tool will show you the exact URL based on your setup.

## Environment Variables (Optional)

Skip the prompts by creating a `.env` file:

```env
CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
REDIRECT_URI=http://localhost:3000/callback
TEAMWORK_SITE_NAME=yoursite  # Optional, for backwards compatibility
TEAMWORK_REGION=us  # Optional, for backwards compatibility
PORT=3000  # Optional
```

## Command Options

```bash
# Use custom port
npx @teamwork/get-bearer-token auth --port 8080

# Don't auto-open browser
npx @teamwork/get-bearer-token auth --no-open

# Show help
npx @teamwork/get-bearer-token --help
```

## Using Your Token

Once you have your bearer token:

```bash
# US region
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
     "https://yoursite.teamwork.com/projects.json"

# EU region
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
     "https://yoursite.eu.teamwork.com/projects.json"

# Staging region
curl -H "Authorization: Bearer YOUR_TOKEN_HERE" \
     "https://yoursite.staging.teamwork.com/projects.json"
```
