Skip to content

feat(task-trackers): add custom HTTP provider#254

Merged
gently-whitesnow merged 1 commit into
masterfrom
feat/custom-http-task-tracker
Jul 16, 2026
Merged

feat(task-trackers): add custom HTTP provider#254
gently-whitesnow merged 1 commit into
masterfrom
feat/custom-http-task-tracker

Conversation

@gently-whitesnow

Copy link
Copy Markdown
Owner

Цель

Добавить в Throne расширяемую интеграцию приватных task-tracker систем через встроенный generic/custom HTTP provider, не заводя vendor-specific provider для Overtime.

Изменения

  • Зарегистрирован provider key custom-http рядом с существующим kaiten.
  • Добавлен Generic HTTP adapter: Bearer auth, health probe, boards, list/search/get cards, ADR-0053 error taxonomy.
  • Описан upstream-facing contract в specs/contracts/task-trackers/generic-http.md.
  • TaskTrackerCard получил optional upstream WebUrl; API browser DTO предпочитает его, но attachment snapshot остаётся read-only/non-authoritative.

Решения

  • custom-http остаётся обычным in-tree provider по ADR-0045/0046.
  • Overtime не упоминается как публичный tracker vendor в Throne.
  • Adapter read-only: Throne не пишет в upstream и не меняет lifecycle Intent.

Ограничения

  • Один configured endpoint на custom-http, потому что текущая settings-модель keyed by tracker.
  • Runtime plugin host и multi-instance providers не входят в слайс.

Проверка

  • git diff --check origin/master...HEAD
  • dotnet test apps/api/tests/Throne.Application.Tests/Throne.Application.Tests.csproj --filter 'FullyQualifiedName~TaskTrackers'
  • dotnet test apps/api/tests/Throne.Api.Tests/Throne.Api.Tests.csproj --filter 'FullyQualifiedName~TaskTracker'
  • dotnet test apps/api/tests/Throne.Infrastructure.Tests/Throne.Infrastructure.Tests.csproj --filter 'FullyQualifiedName~TaskTrackers'
  • До rebase также пройден полный backend-набор Domain/Application/Infrastructure/API и Architecture tests.

Решения:
- Добавлен встроенный provider key custom-http вместо vendor-specific адаптера для приватных систем.
- Generic HTTP contract реализован поверх base_url + Bearer token и маппит upstream DTO в TaskTrackerCard, включая upstream web_url как неперсистентное поле browser response.
- Kaiten остаётся зарегистрированным provider; registry/catalog теперь содержит оба provider-а.

Отброшено:
- Runtime plugin host и multi-instance generic providers не добавлялись, потому что текущая settings-модель keyed by tracker рассчитана на один endpoint.
- Vendor-specific provider для Overtime не добавлялся, чтобы не делать приватный upstream публичной осью Throne.

Ограничения:
- Custom HTTP adapter read-only: не пишет в upstream, не зеркалит карточку в Intent.text и не меняет lifecycle Intent.
@gently-whitesnow
gently-whitesnow force-pushed the feat/custom-http-task-tracker branch from 315af7d to 3a7bd59 Compare July 16, 2026 08:03
@gently-whitesnow
gently-whitesnow merged commit feed930 into master Jul 16, 2026
1 check passed
@gently-whitesnow
gently-whitesnow deleted the feat/custom-http-task-tracker branch July 16, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants