mirror of
https://github.com/anikeen-com/id.git
synced 2026-11-06 23:58:35 +00:00
3.7 KiB
3.7 KiB
Changelog
Unreleased
Preferences; they need an Anikeen ID release that supports them.
Added
- Preferences of any user with the app's token (trusted apps, registered by Anikeen per
namespace):
preferencesByUserId(),preferenceByUserId(),setPreferenceByUserId(),deletePreferenceByUserId()andfindUserIdByPreference()(the user holding a value of a unique key,nullwhen nobody does). - The user's shared preferences with their token:
globalPreferences(),globalPreference(),setGlobalPreference()anddeleteGlobalPreference()onBillable, cached per instance. Resources\PreferenceandResources\Preferences;Enums\SharedPreferenceandEnums\Appearance.- Conditional writes:
ifVersion(If-Match) andcreateOnly(If-None-Match: *);PreconditionFailedException(a subclass ofApiException) for 412 withcurrentVersion(). - Scopes
Scope::PREFERENCES,PREFERENCES_READandPREFERENCES_CLIENT. - Webhook event
order.refunded(EventType::ORDER_REFUNDED). - An optional trailing
$headersargument onAnikeenId::request(),get(),post(),put(),delete()andAppRequest::send(); calls without it send the same request as before.
3.3.0 (2026-11-06)
App billing features; they need an Anikeen ID release that supports them.
- Free trials:
trial_days/trial_ends_at(optionaltrial_once,trial_payment_methodwithTrialPaymentMethod::REQUIRED/OPTIONAL) when creating subscriptions and checkout sessions;Subscription::isTrial(). - Discounts per billed period:
discountwithpercent_offoramount_off,durationandlabel. - Plan changes of running subscriptions:
AppSubscription::change()(apply: noworperiod_end) andAppSubscription::cancelScheduledChange(). - App orders: order lines with subscription, period, net amount and discount;
AppOrders::invoicePdf(). Confirmable orders of trusted apps (confirm: true). - Billing portal links that work without a login:
createBillingPortalLinkForUser()andappBillingPortalUrl(). - Webhook events
subscription.trial_will_end,subscription.discount_ended,subscription.updatedandsubscription.renewed(EventType::SUBSCRIPTION_*);data.reasonwithCancellationReason::TRIAL_ENDED_WITHOUT_PAYMENT_METHOD.
3.2.0 (2026-11-06)
Elapsed-period billing and user lookup; they need an Anikeen ID release that supports them.
AppSubscription::checkout()takesbillElapsedPeriodsandmaxNetAmount: a subscription started more than one period ago is billed for its elapsed periods too, up to the given net amount (409elapsed_amount_exceededwithnet_amount,elapsed_periods_not_allowed). Calls without the new arguments send the same request as before.ApiException::body()returns the JSON body of Anikeen ID's error response, e.g. itsnet_amount.- Add
AnikeenId::findUserByEmail()for trusted apps: looks up an account by email address (regardless of case) without creating one, null when there is none. createUser()documentsname,password_confirmationandsend_invitation(a newly created account gets an invitation mail to set a password) and the response fieldscreatedandinvitation_sent.
3.1.0 (2026-11-05)
- Add the scope
products:read(Scope::PRODUCTS_READ) for read-only access to the product APIs of the Anikeen Console. - Add the reseller scopes
reseller-customers:read,reseller-customers,reseller-grantsandreseller-orders(Scope::RESELLER_CUSTOMERS_READ,Scope::RESELLER_CUSTOMERS,Scope::RESELLER_GRANTS,Scope::RESELLER_ORDERS) for the reseller API of the Anikeen Console. - Document the scope schema and the new scopes in the README.
Older releases: see the GitHub releases and tags.