DjaoApp release notes
2024-03-15
This release is focused on stability and documentation.
-
breaking
GET /api/profile/{profile}/subscribers
now lists active subscribers while a new API endpoint has been introduced to list past and present subscribers, -
breaking new feature Adds support for multiple user API keys (List, Create, Delete).
-
breaking theme Use
|humanize_short_date
in place of|short_date
when writing templates. All templatetags subject to localization are now prefixed withhumanize_
. -
new feature Supports for notification webhooks. see create a contact on Hubspot when a user registers on your Website (via Zappier).
-
new feature Adds API to list subscribers with a balance due.
-
new feature Adds
nb_periods
andperiod_type
query parameters to metrics APIs: Retrieves trailing customer counts, Retrieves trailing deferred balances, Retrieves trailing plans performance, Retrieves trailing revenue. -
new feature Enables broker to list active cartitems as well as list a specific user active cartitems.
-
new feature Sends notifications for user_logged_in and user_login_failed when a login attempts succeeds or fails respectively.
-
new feature Sends quota_reached and use_charge_limit_crossed when the use charges reaches the free tier quota, and are above a limit for the billing period respectively.
-
improve theme Toggles password visibility on/off
-
improve theme Adds picture in logged-in user menubar
-
improve Download an OpenAPI 3.0 schema that can be used with various tools (ex: Postman).
-
improve Edit tools are no longer enabled/disabled at the broker site level, but rather on a per user basis: Retrieves edit tools toggle
-
improve Uses the same template context in charge receipt notifications and PDF printouts, making it easier to customize both e-mail and PDF charge receipts.
-
bugfix theme Formats money and datetime according to a user preferred language when e-mailing notifications.
-
bugfix Prevents deleted subscribers to show in past and present subscribers API results.
2023-09-22
This release is focused on combining flexibility with robustness in the authentication workflow ... and dark mode!
-
new feature allows password-less to multi-factor authentication workflows.
-
breaking The flexibility introduced in the authentication workflow also means we tighten some of the loose ends on the password reset API. It now requires a
verification_key
in the same way other authentication workflow APIs do. -
new feature supports TOTP pass codes.
-
new feature breaking Upgrades Bootstrap from version 4 to version 5. This introduces dark mode to the theme templates.
-
new feature introduces a
page_size
query parameter that can take values from 1 to 100. It defaults to 25. -
new feature adds APIs to list agreements (ex: terms of use), get the detailed on an agreement and update the last modification date of an agreement.
-
new feature adds POST /api/billing/{profile}/balance for Usage-based pricing
-
new feature adds toggle in rules dashboard to enable/disable CORS checks
-
breaking renames event 'charge_receipt' to 'charge_updated'.
-
fixes performance issue that impacted subscriptions API.
2022-09-16
This release is focused on simplifying integration with your application code. It also lays the ground work for integration with third-party services such as Zappier later on.
-
Until now all API endpoints ended with a
/
character. We have reworked the URLs to remove the trailing/
in order to match what major API providers do. It also integrates better with React and Angular framework. breaking API calls -
Formalized structure of event notifications. Profiles listed in an event contain all the fields for that profile, including
nick_name
. new feature -
Localization of date and money in notifications e-mail templates. new feature
-
A search can be restricted to specific fields. All search fields can also be used to order the results returned.
-
Adds API endpoints to list of engaged subscribers and list of inactive subscribers. new feature
-
Adds API endpoints to retrieve a profile public information. new feature
-
Uses both
{profile}
and{charge}
in the API endpoints working with charges: Retrieves a processor charge, Re-sends a charge receipt, Refunds a processor charge. breaking API calls -
Tightens APIs returning personal information, and replaces slug references by dictionnary of public information useful to render HTML pages. breaking API calls
-
- GET /api/accounts
- GET /api/accounts/profiles
- GET /api/metrics/{profile}/lifetimevalue
Removes
full_name
field. You should useprintable_name
instead. -
- GET /api/accounts/users
- GET /api/metrics/registered
- GET /api/profile/{organization}/roles
- GET /api/profile/{organization}/roles/{role}
- GET /api/users
Removes
created_at
,email
andcredentials
fields for users. -
- GET /api/users/{user}/accessibles
- POST /api/users/{user}/accessibles
- PUT /api/users/{user}/accessibles/accept/{verification_key}
- GET /api/users/{user}/accessibles/{role}
- POST /api/users/{user}/accessibles/{role}/{organization}
Replaces
organization
field byprofile
. Removesorganization.full_name
field. You should useprofile.printable_name
instead. -
- GET /api/metrics/{organization}/active
- GET /api/metrics/{organization}/churned
- GET /api/profile/{organization}/plans/{plan}/subscriptions
- GET /api/profile/{organization}/plans/{plan}/subscriptions/{subscriber}
- POST /api/profile/{organization}/subscribers/accept/{request_key}
- GET /api/profile/{organization}/subscriptions
- GET /api/profile/{organization}/subscriptions/{subscribed_plan}
- PUT /api/profile/{organization}/subscriptions/{subscribed_plan}
Replaces the
subscription.organization
bysubscription.profile
, also personal information (email
,phone
,street_address
) are not returned anymore, onlyslug
,printable_name
,picture
,type
,credentials
.Removes detailed information on the
plan
field; only providesslug
andtitle
. -
- GET /api/profile/{organization}/subscribers
Personal information (
email
,phone
,street_address
) are not returned anymore, onlyslug
,printable_name
,picture
,type
,credentials
. -
- GET /api/billing/{organization}/checkout
Replaces the
subscription.organization
bysubscription.profile
, also personal information (email
,phone
,street_address
) are not returned anymore, onlyslug
,printable_name
,picture
,type
,credentials
.Removes detailed information on the
plan
field; only providesslug
andtitle
.Replaces the
lines[].orig_organization
field (a single slug) byorig_profile
as a dictionnary ofslug
,printable_name
,picture
,type
,credentials
. Similarlylines[].dest_organization
is replaced bydest_profile
. -
- GET /api/billing/transactions
- GET /api/billing/{organization}/history
- GET /api/billing/{organization}/receivables
- GET /api/billing/{organization}/transfers
Replaces the
subscription.organization
bysubscription.profile
, also personal information (email
,phone
,street_address
) are not returned anymore, onlyslug
,printable_name
,picture
,type
,credentials
. -
- POST /api/profile/{organization}/plans/{plan}/subscriptions
Replaces the
organization
byprofile
field. -
- POST /api/auth/register
Adds a
nick_name
field. -
- GET /api/billing/{organization}/coupons
- POST /api/billing/{organization}/coupons
- GET /api/billing/{organization}/coupons/{coupon}
- PUT /api/billing/{organization}/coupons/{coupon}
Replaces the
plan
field (a single slug) by a dictionnary ofslug
andtitle
fields. -
- POST /api/cart
Adds
user
field as a dictionnary withusername
,slug
,printable_name
andpicture
.Replaces the
plan
field (a single slug) by a dictionnary ofslug
andtitle
fields. -
- GET /api/metrics/{organization}/coupons/{coupon}
Removes
created_at
,email
andcredentials
fields for users.Replaces the
plan
field (a single slug) by a dictionnary ofslug
andtitle
fields. -
- GET /api/contacts/{user}/activities
Replaces the single slug
created_by
field by a dictionnary ofusername
,slug
,printable_name
,picture
,type
,credentials
.Replaces the single slug
account
field by a dictionnary ofslug
,printable_name
,picture
,type
,credentials
. Similarlylines[].dest_organization
is replaced bydest_profile
.
-
2021-10-05
-
edits Jinja2 templates directly on the page in wysiwyg mode new feature theme
-
customizes pagination links with HTML/CSS (see _pagination.html) new feature theme
-
All i18n translation can now be specified server-side in HTML theme pages theme
-
enables broker profile manager to update global role types new feature
-
uses browser default lang only if not override in registration field
2021-03-25
-
adds registration and login with phone number new featureLogin profiles do not require an e-mail address anymore, but either an e-mail or phone number must to be present. Notfications are still send through e-mails when one is present in the profile.
-
The application can typically deduce a preferred communication language through the HTTP headers sent by the browser when a user is interacting with the application (aka on-session). Renewals and expiration notifications are done off-session. At that time, the system uses the preferred communication language stored in the user profile.
-
uses Strong Customer Authentication (SCA) flows in EU region new feature
-
computes customers lifetime value (LTV) API new api
-
adds balance due in checkout pageWith the introduction of SCA as well as more complex billing workflows, past dues are best presented on the checkout page, rather than inconsistently accross the application workflows.
-
adds "remove from Cart" to all items on checkout page theme
-
translates
description
based on preferred language in transactions history API. -
fixes re-ordering of rules on the Access Rules Page theme
2020-06-08
-
Previously the API tried to infer discounts for advance payments based of a single percentage. It was neither intuitive to use no created the expected discounts.A provider can now explicitely specify discounts for advance payments as either a percentage, currency or period amount, as well as the length of period covered by the discount.
-
Adds the ability to specify a currency amount instead of a percentage for one-time discount coupons. new feature breaking API calls
- Added an API to retrieve plans shown in pricing page. new api
-
Adds
skip_optin_on_grant
andimplicit_create_on_none
fields to specify behavior of roles when inviting a user. -
Consistently use
detail
to return user-friendly messages. Previously some APIs returneddetails
while others would returndetail
. breaking API calls -
API to generate a rules key
to communicate with the micro-service behind the firewall has been changed
from
PUT
toPOST
for consistency. breaking API calls
2020-03-07
-
Workflow to create user accounts and connect them to a profile. new featureWhen you are serving big organizations where registered users need to connect to a single organization profile, it is many times unknown to a new user that a profile for her organization already exists. Furthermore, there might be pending invites for her e-mail address, a user is unaware of when she attempts to register.The
/activate/
page takes users through the login or register workflow based on their e-mail address. - Support for Cross-Origin Resource Sharing (CORS) for teams that have Web frontend and API backend teams deploying on different HTTP domains. new feature
- Detailed dashboard for engagement tags. new feature
- Added API to retrieve user from an activation key, and activate new user accounts. new api
- Added API to confirm a password reset. new api
- Added API to send a contact us request. new api
- You work hard to prevent errors. We do the same. Inevitably though a glitch will occur. We have redesigned the 40x and 50x error pages to help users recover and move forward. theme
- Many business owners and users are mobile-first if not mobile-only. We have redesigned the pages to grant roles and invite co-workers with inline forms instead of dialog popups. theme
- We are committed to support a growing international community of developpers and users. We updated the French locale this time around. If you are interested to improve translations or are interested to provide locale for different languages, please get in touch with us. Thank you. theme
-
All authenticated users can now search for users and profiles through
/api/accounts
. The API is used to implement typeahead dropdowns. change default in permissions -
Both subscribers and providers can call GET on
/api/billing/{profile}/balance/
. change default in permissions -
Amounts and descriptions for invoice items in checkout pages no longer require
to be a specific column index. They must though be
decorated with classes
.line-amount
and.line-descr
now (commit d99974a5). breaks older themes -
APIs creating JSON Web Tokens (
/api/auth
) return201 CREATED
instead of200 OK
alongside the token payload. breaking API calls -
Previously various APIs were using fields named
balance
orbalance_amount
to specify a balance. All APIs dealing with balances now usebalance_amount
(commit 2cecfeb4). breaking API calls
As always the complete code base is available as Open Source.