GH GambleHub

Портал розробників і токени доступу

1) Роль порталу розробників

Developer Portal - це «фронт-офіс» для інтеграторів: самообслуговування (ключі, токени, вебхуки, плани тарифів), прозорість (ліміти, usage, інвойси), безпека (ротація, підписи), швидкість інтеграції (SDK, документація, пісочниця).

Ключові цілі:
  • Скоротити TTI (time-to-integrate) до годин.
  • Дати керованість доступу: хто/що/скільки/коли.
  • Знизити навантаження на підтримку через авто-інструменти.

2) Онбординг та облікові записи

Реєстрація: email + 2FA/SSO (SAML/OIDC); підтвердження домену (DNS-токен).
Організації та команди: роли `Owner`, `Admin`, `Developer`, `Billing`, `Security`.
Мульти-тенант: прив'язка додатків до організацій; доступ до даних - по тенанту/оточенню.
KYC/B2B (опц.) : для Enterprise - юридична особа, договір, ліміти вище.

3) Додатки та креденшели

Типи додатків: `server-to-server`, `web`, `mobile`, `machine-to-machine`, `webhook-consumer`.

3. 1 API Keys (server-to-server, прості інтеграції)

Ідентифікатор'key _ id'+ секрет'key _ secret'( видно один раз).
Прив'язка до плану і наборів scopes.
Підпис запитів (HMAC) та/або заголовок'Authorization: ApiKey <key_id>:<signature>`.

3. 2 OAuth2/OIDC (рекомендується)

Гранти:
  • Client Credentials (машини).
  • Authorization Code (+PKCE) (user-delegated).
  • Refresh Token (офлайновий доступ, ротація RT).
  • Device Code (TV/консолі).

3. 3 mTLS (доп. рівень)

Взаємна TLS на ingress; сертифікати завантажуються через портал; прив'язка'cert _ fingerprint'до програми.

4) Токени: типи і життєвий цикл

ТипДе зберігаєтьсяТермін життяВикористання
Access Token (JWT/opaque)клієнткороткий (5-60 хв)авторизація запитів
Refresh Tokenсервер клієнтадовгий (7-90 днів)оновлення AT, ротація
API Keyсервер клієнтадо ротаціїпідпис HMAC/проста автентифікація mTLS cert
Принципи:
  • Короткий AT + довгий RT; RT - ковзна ротація (rotate-on-use).
  • Примусовий відгук (revoke) за ключем/додатком/організації.
  • Пере-видача зі збереженням обмежень за scopes/квотами.

4. 1 Формат JWT (приклад)

json
{
"iss":"https://auth. example. com",
"sub":"app_123",
"aud":"https://api. example. com",
"exp":1730616000,
"iat":1730612400,
"scp":["wallet:read","bet:write"],
"org":"acme",
"kid":"jwks_2025_11",
"jti":"at_01HXY..."
}

Публічні ключі публікуються в JWKS; ротація по'kid'.

4. 2 Opaque токени і Introspection

Зберігайте в Auth-сервері'token _ store'( Redis/SQL).
Інтроспекція: `active`, `scope`, `exp`, `client_id`, `org`, `tenant`.

5) Scopes, ролі та політики доступу

Scopes описують операції ('wallet:read`, `wallet:write`, `report:read`).
Ролі агрегують scopes («Developer», «Billing»).
ABAC: атрибути «org», «tenant», «region», «environment».
Політики: «цей ключ - тільки'eu-west-1'і'read'».
Step-up: для критичних методів потрібні розширені scopes або mTLS.

6) Квоти, ліміти і тарифи

Rate limits: RPS/RPM, burst.
Квоти: день/місяць, кредити.
За ключем/додатком/організації/тенанту.
Портал показує usage, заголовки'X-RateLimit-'і'X-Quota-', а також прогноз overage.
Білінг: зв'язка з планом, метеринг по подіям, інвойси і вебхуки білінгу.

7) Управління вебхуками

Реєстрація endpoint'ів, секретів, версій подій.
Тест-доставка і replay; логи спроб (2xx/4xx/5xx).
Підписи HMAC ('X-Signature'),'X-Webhook-Id', дедуплікація, respect'410'.

8) Документація та SDK

OpenAPI/AsyncAPI з авто-генерацією SDK.
Cookbook: приклади запитів, ретраї, ідемпотентність, пагінація, webhooks.
Try-it playground (з пісочними ключами).
Версійний Changelog і сторінка депрекацій.

9) Пісочниця і тестові дані

Ізольовані оточення: `sandbox`, `staging`, `production`.
Тестові сутності (гравці, транзакції) і сценарії (win/lose, затримки, 5xx, 429).
Data seeding з порталу і reset оточення.

10) Безпека і зберігання секретів

Хеш секретів API Key (не зберігати у відкритому вигляді); показати ключ один раз.
Менеджер секретів (KMS/HSM) для токенів підпису; ротація ключів'kid'.
IP allowlist, гео-обмеження, ASN-фільтри.
2FA/SSO, апаратні ключі (WebAuthn).
Захист від аб'юзу: CAPTCHA при створенні, анти-бот евристики, швидкість реєстрації.
Логи без PII/секретів; redaction за шаблонами.

11) Аудит і відповідність

Аудит-лог: хто створив/переглянув/відкликав ключ, змінив вебхук, завантажив звіт.
GDPR/DSAR: вивантаження і видалення даних програми/організації.
Політики зберігання: TTL для логів, Legal Hold при інцидентах.
Terms of Use/Fair Use та експортні обмеження.

12) Адміністрування та операції

Масовий відгук токенів щодо інциденту/компрометації.
Тимчасове призупинення програми (suspend) з причиною і апеляцією.
Рол-овер ключів (двоключовий режим: `active/next`).
Інцидент-комм: статус-сторінка, розсилки, RSS/вебхуки статусу.

13) UI/UX порталу (ключові екрани)

Дашборд організації: usage/помилки/SLO/білінг.
Додаток: ключі, токени, scopes, ліміти, вебхуки, оточення.
Логи доставки вебхуків з фільтрами і кнопкою Replay.
Токен-консоль: випуск/відгук, історія, причини.
Документація та SDK, Quickstart, приклади коду (копіювати-вставити).
Розділ «Депрекації та міграції».

14) Приклади контрактів і конфігів

14. 1 OpenAPI (фрагменти)

yaml paths:
/v1/apps:
post:
summary: Create app security: [{ oauth2: [admin:apps. write] }]
responses:
'201': { description: Created }
/v1/apps/{app_id}/keys:
post:
summary: Create API key (shown once)
responses:
'201': { description: Created }
/v1/oauth2/token:
post:
summary: Token endpoint (CC/AC)
responses:
'200': { description: Access token }
/v1/tokens/revoke:
post:
summary: Revoke access/refresh token responses:
'204': { description: Revoked }

14. 2 Інтроспекція токена (відповідь)

json
{
"active": true,
"client_id": "app_123",
"scope": "wallet:read bet:write",
"org": "acme",
"exp": 1730616000,
"token_type": "access_token",
"jti": "at_01HXY..."
}

14. 3 Політика ключів (JSON)

json
{
"app_id":"app_123",
"plan":"pro-2025",
"scopes":["wallet:read","report:read"],
"limits":{"rps":50,"daily_requests":250000},
"regions":["eu-west-1"],
"ip_allow":["192. 0. 2. 0/24"]
}

15) Процеси версіонування і депрекацій

Семантичні версії API ('/v1', '/v2'), сумісність «додавай, не ламай».
Портал показує: «що застаріває», до якої дати, і «як мігрувати».
Міграційні гіди, тест-пісочниця'v2', dual-write/dual-read де можливо.

16) Спостережуваність і звітність

Usage → виручка: графіки запитів/кредитів/оверіджів.
Помилки за статусами/' error _ code', гістограми латентності.
SLO-віджети: доступність і p95 для ключових ручок.
Експорт CSV/JSON, вебхуки звітів, API для аналітики.

17) Чек-листи

17. 1 Безпека

  • 2FA/SSO, підтвердження домену/пошти
  • Показ секретів один раз, хеш-зберігання
  • JWKS і ротація ключів,'kid '
  • mTLS (опц.) , IP allowlist, geo/ASN фільтри
  • Анти-бот/anti-abuse, rate-limit на створення ключів
  • Аудит-лог дій і доступів

17. 2 DX/Онбординг

  • Quickstart ≤ 5 хвилин
  • SDK (TS/Py/Java/Go/.NET) з однаковою поверхнею
  • Playground + пісочні ключі
  • Cookbook: вебхуки, пагінація, ретраї, ідемпотентність
  • Сторінка лімітів/планів/цін
  • Приклади «копіювати-вставити»

17. 3 Операції

  • Масовий відгук токенів, suspend app
  • Сторінка інцидентів/статусу + підписка
  • DLQ/Replay для вебхуків
  • Авто-оповіщення про близьке вичерпання квот
  • Щомісячні звіти та інвойси

18) План впровадження (3 ітерації)

Ітерація 1 - MVP (2-3 тижні):
  • Реєстрація орг/додатків, видача API Keys, Client Credentials OAuth2, базові ліміти (RPS/квоти), логи запитів і usage-графіки, документація і SDK TS/Python, пісочниця.
Ітерація 2 - Надійність і безпека (3-4 тижні):
  • JWT + JWKS, ротація ключів, Refresh Token + rotate-on-use, мандатна 2FA/SSO, вебхуки (підписи, retries, логування, replay), білінг-вебхуки, звіти та експорт, ролі та ABAC.
Ітерація 3 - Масштаб і комплаєнс (безперервно):
  • mTLS, адмін-інструменти (mass revoke/suspend), депрекації та міграції v2, SDK Java/Go/.NET, фінопс-дашборди, GDPR/DSAR, Legal Hold, просунута анти-аб'юз.

19) Міні-FAQ

JWT або opaque?
JWT зручний без запиту до Auth-сервера (підпис/' kid'), opaque - простіше відкликати і приховує вміст. Часто використовують обидва: зовні JWT, внутрішньо - opaque з інтроспекцією.

Скільки живе Access Token?
Коротко: 5-15 хвилин для користувацьких, 15-60 хвилин для машинних. Компенсується refresh-механікою.

Як безпечно ротувати ключі?
Тримайте'active/next', публікуйте обидва в JWKS, перемикайте клієнтів по'kid', потім відкликати старий.

Підсумок

Сильний портал розробників - це самообслуговування, спостережуваність і безпека за замовчуванням. Дайте зрозумілі процеси випуску/ротації/відкликання токенів, прозорі ліміти і білінг, якісну документацію і SDK, надійні вебхуки і аудит. Тоді інтегратори швидко стартують, а ваша платформа залишиться керованою, комплаєнтною і стійкою під навантаженням.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.