datacore / hub-sdk
Datacore Hub SDK pra produtos integrados (Symfony bundle). Valida JWT via JWKS + chama API do Hub via OAuth client_credentials.
Package info
bitbucket.org/datacoresolutions/datacore-php-sdk
Type:symfony-bundle
pkg:composer/datacore/hub-sdk
dev-main
2026-07-09 12:46 UTC
Requires
- php: >=8.3
- ext-openssl: *
- symfony/cache: ^7.4
- symfony/framework-bundle: ^7.4
- symfony/http-client: ^7.4
- symfony/security-bundle: ^7.4
- web-token/jwt-library: ^4.0|^3.3
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.91
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.0
This package is auto-updated.
Last update: 2026-07-09 12:46:44 UTC
README
SDK oficial pra produtos integrados com o Datacore Hub (Identity Provider central + billing + onboarding).
Instalação
Adicione no composer.json do seu projeto (Symfony 7.4+):
{
"repositories": [
{
"type": "path",
"url": "../datacore-php-sdk"
}
],
"require": {
"datacore/hub-sdk": "@dev"
}
}
Quando publicarmos em Packagist privado/Satis, troca por:
"datacore/hub-sdk": "^1.0"
Configuração
config/packages/datacore_hub.yaml:
datacore_hub:
issuer_url: 'https://hub.datacore.com' # ou http://localhost:8000 em dev
client_id: '%env(DATACORE_HUB_CLIENT_ID)%'
client_secret: '%env(DATACORE_HUB_CLIENT_SECRET)%'
jwks_cache_ttl: 86400 # 24h
bundles.php:
Datacore\HubSdk\DatacoreHubBundle::class => ['all' => true],
Uso — Validar JWT do Hub
use Datacore\HubSdk\JwtValidator;
public function __construct(private JwtValidator $validator) {}
public function someProtectedAction(Request $request): Response
{
$jwt = $request->headers->get('Authorization', '');
$jwt = preg_replace('/^Bearer\s+/i', '', $jwt);
try {
$token = $this->validator->validate($jwt);
$userId = $token->getSubject();
$scopes = $token->getScopes();
// ...
} catch (\RuntimeException $e) {
return new Response('Invalid token', 401);
}
}
Uso — Chamar API do Hub (server-to-server)
use Datacore\HubSdk\HubApiClient;
public function __construct(private HubApiClient $hub) {}
public function listMySubscriptions(): array
{
$response = $this->hub->request('GET', '/api/v1/subscriptions');
return $response->toArray();
}
Componentes
| Classe | Função |
|---|---|
JwksClient | Busca + cacheia chaves públicas do Hub (/.well-known/jwks.json) |
JwtValidator | Valida assinatura JWT + claims (iss/exp/nbf) |
ValidatedToken | Wrapper imutável dos claims pós-validação |
HubApiClient | HTTP client com OAuth client_credentials automático |
Sprint 4 (futuro)
WebhookHandlerabstrato pra receber eventos do Hub (subscription.activated, etc.) com HMAC validation
Licença
Proprietary — Datacore Tecnologia Ltda.