Osobní přístupové tokeny

Osobní přístupové tokeny (PATs) umožňují programový přístup k TeamDay API pro automatizaci, CI/CD pipeline a ověřování agenta.

Rychlý start

1. Vytvoření vašeho tokenu

  1. Přejděte na Settings → Profile
  2. Posuňte se na Personal Access Tokens
  3. Klikněte na Create Token
  4. Dejte mu popisný název (např. "CI Pipeline", "Production Automation")
  5. Zvolte dobu vypršení (doporučeno 90 dnů)
  6. Zkopírujte token ihned - bude zobrazen pouze jednou!

2. Použijte váš token

Zahrňte token v hlavičce Authorization:

curl -H "Authorization: Bearer td_your-token-here" \
     https://teamday.ai/api/v1/agents

Nebo nastavte jako proměnnou prostředí:

export TEAMDAY_TOKEN="td_your-token-here"

curl -H "Authorization: Bearer $TEAMDAY_TOKEN" \
     https://teamday.ai/api/v1/agents

Nejlepší bezpečnostní praktiky

Důležité bezpečnostní pokyny

  • Nikdy nezavazujte tokeny do správy verzí - Používejte proměnné prostředí nebo správce tajemství
  • Pravidelně rotujte tokeny - Nastavte vhodné doby vypršení
  • Používejte samostatné tokeny na integraci - Usnadní odvolání
  • Pojmenujte tokeny popisně - Vědět, kde se každý token používá
  • Okamžitě odvolte nepoužívané tokeny - Snížit bezpečnostní riziko
  • Nikdy nesdílejte tokeny - Každý člen týmu by měl mít svůj

Doporučení uložení

Bezpečné uložení:

  • Proměnné prostředí: export TEAMDAY_TOKEN="..."
  • Správci tajemství: AWS Secrets Manager, HashiCorp Vault, 1Password
  • CI/CD tajemství: GitHub Secrets, GitLab CI/CD proměnné
  • .env soubory (s .gitignore)

Nezabezpečené uložení:

  • Zakódováno ve zdrojovém kódu
  • Zavázáno do repozitáří git
  • Sdíleno přes Slack/email
  • Uloženo v prostých textových souborech na sdílených jednotkách

Rozsahy tokenů a oprávnění

Osobní přístupové tokeny mají stejná oprávnění jako uživatel, který je vytvořil:

  • Přístup k organizaci: Token je vymezen na vaši aktuální organizaci
  • Oprávnění uživatele: Dědí oprávnění vaší role (admin, člen, prohlížeč)
  • Přístup k prostředkům: Lze přistupovat ke všem prostředkům, ke kterým máte přístup přes UI
  • Soukromé prostředky: Přístup k vašim soukromým agentům, prostorům a chatu

API endpointy s PAT

Po ověření máte přístup k těmto endpointům:

Agenti

# Vypsat všechny agenty
GET /api/v1/agents

# Vytvořit agenta
POST /api/v1/agents

# Získat detaily agenta
GET /api/v1/agents/{agentId}

# Aktualizovat agenta
PATCH /api/v1/agents/{agentId}

# Smazat agenta
DELETE /api/v1/agents/{agentId}

# Spustit agenta
POST /api/v1/agents/{agentId}/execute

Úlohy

# Vypsat úlohy
GET /api/v1/tasks

# Vytvořit úlohu
POST /api/v1/tasks

# Získat detaily úlohy
GET /api/v1/tasks/{taskId}

# Aktualizovat úlohu
PATCH /api/v1/tasks/{taskId}

Spuštění

# Vypsat spuštění
GET /api/v1/executions

# Získat detaily spuštění
GET /api/v1/executions/{executionId}

# Získat strom spuštění (s delegacemi)
GET /api/v1/executions/{executionId}/tree

# Zrušit spuštění
POST /api/v1/executions/{executionId}/cancel

Spaces (Operace se soubory)

# Procházet soubory
GET /api/spaces/{spaceId}/files/browse?path={path}

# Číst soubor
GET /api/spaces/{spaceId}/files/read?path={path}

# Psát soubor
POST /api/spaces/{spaceId}/files/write

# Nahrát soubor
POST /api/spaces/{spaceId}/files/upload

Úplnou dokumentaci endpointů najdete v naší API Reference.

Příklad: Vytvoření a spuštění agenta

const TEAMDAY_TOKEN = process.env.TEAMDAY_TOKEN!

// 1. Vytvoření agenta
const agent = await fetch('https://teamday.ai/api/v1/agents', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${TEAMDAY_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Kontrolor kódu',
    role: 'Starší vývojář',
    systemPrompt: 'Kontrolujete kód pro kvalitu, bezpečnost a osvědčené postupy.',
    visibility: 'organization',
  }),
}).then(r => r.json())

console.log(`Agent vytvořen: ${agent.id}`)

// 2. Spuštění agenta
const execution = await fetch(`https://teamday.ai/api/v1/agents/${agent.id}/execute`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${TEAMDAY_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    message: 'Zkontroluj ověřovací kód v src/auth.ts',
    spaceId: 'space_your-workspace',
    stream: false, // Získat úplnou odpověď, když je hotova
  }),
}).then(r => r.json())

console.log(`Kontrola byla dokončena:`, execution.messages)

Používání tokenů v CI/CD

GitHub Actions

name: Nasazení s TeamDay Agent

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Nasazení přes TeamDay Agent
        env:
          TEAMDAY_TOKEN: ${{ secrets.TEAMDAY_TOKEN }}
        run: |
          curl -X POST https://teamday.ai/api/v1/agents/char_deploy_bot/execute \
            -H "Authorization: Bearer $TEAMDAY_TOKEN" \
            -H "Content-Type: application/json" \
            -d '{
              "message": "Nasadit commit ${{ github.sha }} do produkce",
              "spaceId": "space_production",
              "stream": false
            }'

GitLab CI

deploy:
  stage: deploy
  script:
    - |
      curl -X POST https://teamday.ai/api/v1/agents/${AGENT_ID}/execute \
        -H "Authorization: Bearer ${TEAMDAY_TOKEN}" \
        -H "Content-Type: application/json" \
        -d "{\"message\": \"Nasadit ${CI_COMMIT_SHA}\"}"
  only:
    - main

Používání tokenů v izolovaných prostředích

Při používání agentů v izolovaných virtuálních prostředích (jako kontejnery Docker nebo cloudové funkce) předajte token jako proměnnou prostředí:

# V Space Settings → Environment Variables
TEAMDAY_TOKEN=td_your-token-here

Váš agent pak může použít tento token k volání jiných TeamDay API nebo delegování práce jiným agentům.

Správa tokenů

Prohlížení vašich tokenů

Přejděte na Settings → Profile → Personal Access Tokens a zobrazit:

  • Název tokenu a datum vytvoření
  • Časová značka poslední použití
  • Datum vypršení
  • Maskovaná hodnota tokenu (pro identifikaci)

Odvolání tokenů

Klikněte na ikonu koše vedle libovolného tokenu, abyste jej okamžitě odvolali. To bude:

  • Trvale zneplatnit token
  • Zastavit všechny požadavky API pomocí tohoto tokenu
  • Odstranit token z vašeho účtu

Varování Odvolání tokenu přeruší všechny skripty, CI/CD pipeline nebo integrace, které jej používají. Před odvoláním se ujistěte, že tyto systémy aktualizujete.

Vypršení tokenu

Tokeny se automaticky vypršují na základě doby vypršení, kterou jste vybrali:

  • 7 dnů - Pro testování a krátkodobé použití
  • 30 dnů - Pro měsíční automatizaci
  • 90 dnů - Doporučeno pro produkční použití
  • 180 dnů - Pro dlouhodobě běžící integrace
  • 365 dnů - Maximální vypršení (vyžaduje pečlivou správu bezpečnosti)

Budete muset vytvořit nový token, když starý vyprší.

Omezení sazby

Aktuální omezení sazby

  • Vytvoření tokenu: 10 tokenů za hodinu na uživatele
  • Požadavky API: 1 000 požadavků za minutu na token
  • Spuštění agenta: 100 souběžných spuštění na organizaci

Pokud dosáhnete omezení sazby, obdržíte odpověď 429 Too Many Requests. Implementujte exponenciální zpoždění v automatizačních skriptech.

Zpracování chyb

Vždy zpracovávejte chyby ověřování elegantně:

async function callTeamDayAPI(endpoint: string, options: RequestInit) {
  const response = await fetch(`https://teamday.ai${endpoint}`, {
    ...options,
    headers: {
      'Authorization': `Bearer ${process.env.TEAMDAY_TOKEN}`,
      'Content-Type': 'application/json',
      ...options.headers,
    },
  })

  if (response.status === 401) {
    throw new Error('Neplatný nebo vypršelý token. Vytvořte nový token v Settings → Profile.')
  }

  if (response.status === 403) {
    throw new Error('Token postrádá oprávnění pro tuto operaci.')
  }

  if (response.status === 429) {
    throw new Error('Omezení sazby překročeno. Prosím opakujte později.')
  }

  if (!response.ok) {
    const error = await response.json().catch(() => ({ message: response.statusText }))
    throw new Error(`TeamDay API chyba: ${error.message}`)
  }

  return response.json()
}

Migrace z OAuth na PAT

Pokud aktuálně používáte tokeny OAuth z CLI, zvažte migraci na Osobní přístupové tokeny:

OAuth (CLI):

  • ✅ Interaktivní tok ověřování
  • ✅ Automatické obnovení tokenu
  • ❌ Vyžaduje prohlížeč pro počáteční ověření
  • ❌ Tokeny vypršují (přístup 15 min, obnovení 90 dnů)

Osobní přístupové tokeny:

  • ✅ Dlouhodobé (až 1 rok)
  • ✅ Nepotřebuje prohlížeč
  • ✅ Ideální pro serverovou automatizaci
  • ❌ Ruční správa tokenů
  • ❌ Žádné automatické obnovení

Zvolte PAT pro:

  • CI/CD pipeline
  • Serverová automatizace
  • Kontejnery Docker
  • Cloudové funkce
  • Cron úlohy

Zvolte OAuth pro:

  • Interaktivní používání CLI
  • Místní vývoj
  • Desktopové aplikace

Odstraňování potíží

Chyba "Invalid token"

Možné příčiny:

  • Token vypršel
  • Token byl odvolán
  • Token byl zkopírován nesprávně (chybí prefix nebo znaky)

Řešení: Vytvořte nový token a aktualizujte proměnné prostředí.

Chyba "Forbidden"

Možné příčiny:

  • Váš účet nemá oprávnění pro požadovanou operaci
  • Token je z jiné organizace

Řešení: Zkontrolujte členství v organizaci a oprávnění role.

Token v požadavcích nefunguje

Kontrolní seznam:

  • ✅ Zahrňte celý token s předponou td_
  • ✅ Použijte Authorization: Bearer záhlaví (ne jen Authorization)
  • ✅ Žádné extra mezery ani nové řádky v hodnotě tokenu
  • ✅ Token nevypršel
  • ✅ Token patří správné organizaci

Související dokumentace

Potřebujete pomoc?

Pokud máte problémy s Osobními přístupovými tokeny: