Client-side helpers for Crate.
This package has two surfaces:
- Consumer auth helper: write Composer HTTP Basic auth for a Crate registry.
- Issuer SDK: call a Crate deployment's admin-token gated
/api/credentialsendpoint.
Configure the customer app with the Crate registry URL and an issued registry credential:
CRATE_URL=https://crate.example.com
CRATE_TOKEN=issued-registry-credentialGenerate Composer auth:
php artisan crate:authBy default, crate:auth writes or merges auth.json in the current working directory. It adds this shape:
{
"http-basic": {
"crate.example.com": {
"username": "token",
"password": "issued-registry-credential"
}
}
}Use a different path with --path:
php artisan crate:auth --path=/path/to/auth.jsonPrint the JSON instead of writing a file with --print, which is useful for COMPOSER_AUTH in CI:
export COMPOSER_AUTH="$(php artisan crate:auth --print)"Then configure Composer to use the Crate registry and require packages normally:
composer config repositories.crate composer https://crate.example.com
composer require vendor/pkgUse CrateIssuer in the operator's own Laravel app to issue and revoke credentials around billing, onboarding, or access logic that you own.
Configure the issuer client:
CRATE_ISSUER_URL=https://crate.example.com
CRATE_ADMIN_TOKEN=admin-ability-token
CRATE_ISSUER_RETRIES=2
CRATE_ISSUER_RETRY_SLEEP=100CRATE_ISSUER_URL defaults to CRATE_URL when omitted.
Example:
use ArtisanBuild\CrateClient\CrateIssuer;
$issuer = CrateIssuer::fromConfig();
$credential = $issuer->issue('build-bot');
$tokens = $issuer->list();
$issuer->revoke('build-bot');The SDK calls:
POST /api/credentialsforissue(...), returning anArtisanBuild\CrateContracts\Credentialwith plaintext shown once.GET /api/credentialsforlist(), returning metadata without plaintext.DELETE /api/credentials/{name}forrevoke(...).
Requests use Bearer auth with the configured admin token, accept JSON, retry transient failures according to config, and throw on non-2xx responses.