При тестировании наткнулся на 401 «Login Required» с валидным
live-токеном, потому что у юзера-владельца стоял is_hidden=true.
findIdentityByAccessToken после поиска токена ещё прогоняет
User::isValidForDisplay() — это надо явно упоминать в how-to,
иначе интегратор не поймёт почему не работает.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Фронтенд (frontend/src/api/userApiToken/HRUserApiTokenApi.ts:18) зовёт
именно `${baseUrl}/create`, а не RESTful `POST /user-api-token`.
Оба роута маршрутизируются Yii в actionCreate, но в swagger лучше
документировать тот же путь, что использует прод-клиент — для
консистентности с /admin/wallet-transaction/create.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- info.description: подробная how-to секция «Авторизация по личному API-токену»
(создание, формат Bearer-заголовка, tenant-резолв, отсутствие scopes,
жизненный цикл и автo-revoke при блокировке юзера, запрет на управление
под Bearer).
- securitySchemes.BearerAuth: новая схема http/bearer (PAT).
- security (global): + BearerAuth, чтобы Try-it-out предлагал три способа auth.
- Теги user-api-token и admin-user-api-token.
- Эндпоинты:
* GET /user-api-token, POST /user-api-token, POST /user-api-token/revoke
* GET /admin/user-api-token, POST /admin/user-api-token/revoke
Все management-эндпоинты помечены `security: SessionAuth` и явно
документируют 403 под Bearer (защита от рекурсии).
- Схемы: UserApiToken, UserApiTokenList, UserApiTokenCreated (с plain),
UserApiTokenCreateForm, UserApiTokenAdmin (+ user/updatedByUser),
UserApiTokenAdminList, UserApiTokenStatus.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Новые эндпоинты:
- GET /admin/wallet[/view] — кошельки сотрудников (read-only)
- POST /admin/wallet/export-excel
- GET /admin/wallet-transaction[/view] — транзакции, admin-вид
- POST /admin/wallet-transaction/create — массовое начисление/списание по форме
- POST /admin/wallet-transaction/create-from-excel — проведение по результату парсинга
- POST /admin/wallet-transaction/excel-processing — парсинг xlsx (file_id + mappings)
- POST /admin/wallet-transaction/export-excel
- GET /file-processing[/view] — статусы FileProcessing для поллинга
Permission: wallets-transactions, требует enableWallet=true у тенанта.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>