Appearance
Changelog
The changelog of the PHP SDK anikeen/console. The SDK follows semantic versioning.
Unreleased beta
Planned as 0.1.0: the first release for apps acting in the Anikeen Console for their users. Needs anikeen/id 3.6 and a Console release with app tokens, GET v1/app-team and app webhooks (on staging first).
Added
- Container LXC options: the order attribute
options({features: [fuse, keyctl], devices: [tun]}, e.g. for rootless Podman inside the container), documented inOrders::create()and the README;Container::$options,hasFeature(),hasDevice()and the constantsFEATURE_FUSE,FEATURE_KEYCTL,DEVICE_TUN;reinstall()takes new options (null keeps them). - Works with Guzzle 7.8+ and 8 (
guzzlehttp/guzzle: ^7.8|^8.0), so it installs in a new Laravel 13 app. AnikeenConsole::forUser($user): requests with the user's stored Anikeen ID token, refreshed throughanikeen/idwhen it expires or the Console answers401(the new pair is saved, the request sent once more; locked per user).withToken($token)for a fixed token.- Production and staging base URLs (
services.anikeen_console.mode/base_url). appTeam()(GET v1/app-team) andcatalog($team)with helpers per family.orders($team)->create($items, ['return_url' => …]): send the user back to your app after the checkout (app tokens only); the Console appendsconsole_orderandstatus.catalog($team, $filters): server-side filters (gpu,gpu_vendor,gpu_model,gpu_mode,gpu_min_vram_gb,gpu_min_count,min_vcores,min_memory_mb,min_disk_gb,min_price,max_priceonmonthly_price,family,sort); booleans sent astrue/false, lists comma separated.orders($team):create()with an automatic Idempotency-Key (kept for the retry after a token refresh),withIdempotencyKey(),list(),find();Orderwithcheckout_url,refresh()andproducts().containers(): list, find, update, delete, power, reinstall, backups (list, create, restore, delete) and snapshots (list, create, rollback, delete), also as methods ofContainer.- Paginated lists (
BaseCollection) for both pagination formats of the Console. - Exceptions by status and error code:
AuthenticationException,ClientNotAllowedException,MissingScopeException(scope()),NotFoundException,AccountConflictException,ValidationFailedException(errors()),RateLimitException(retryAfter),ApiException. - Webhooks:
Route::anikeenConsoleWebhooks()verifies the signature (anikeen/id'sWebhook::constructEvent()), drops replays by event id and dispatchesWebhookReceivedplusOrderCompleted,OrderFailed,ProductReady,ProductFailed,ProductUpdated,ProductDeleted,TeamReleasedandWebhookTest;Webhooks\EventTypeconstants. - Testing:
AnikeenConsole::fake()withassertOrdered(),assertNothingOrdered(),assertSent(),assertNotSent();AnikeenConsole::webhookRequest()for signed webhook requests.