v1.4.0
getlago/lagov1.4.0May 31, 2024by jdenquin
AI Summary
A feature-rich release focusing on accounting integrations, security, and performance, adding support for Okta, ClickHouse SSL, and improved invoice pushing to accounting providers, alongside wallet and RBAC enhancements.
Key Highlights
- Added Okta integration support
- Enabled ClickHouse SSL support
- Improved accounting integration invoice pushing
- Enhanced RBAC with role editing
- Added deprecation tracking
New Features
- Okta integration
- ClickHouse SSL
- Accounting invoice push
- RBAC editing
- Deprecation tracking
Full Release Notes
## API Changes * feat(accounting-integrations): add credit note type in collection mapping by @lovrocolic in https://github.com/getlago/lago-api/pull/2027 * fix(events): Fix event serialize when not saved in PG by @jdenquin in https://github.com/getlago/lago-api/pull/2028 * chore(deps): bump rexml from 3.2.5 to 3.2.8 by @dependabot in https://github.com/getlago/lago-api/pull/2029 * chore: rubocop by @julienbourdeau in https://github.com/getlago/lago-api/pull/2024 * fix: Attempt to fix flacky test in unique count scenario by @vincent-pochet in https://github.com/getlago/lago-api/pull/2030 * fix(gql): Missing billing_configuration solution for OrganizationType by @julienbourdeau in https://github.com/getlago/lago-api/pull/2032 * misc(clickhouse): Turn on SSL support for clickhouse by @vincent-pochet in https://github.com/getlago/lago-api/pull/2035 * Integrations invoices models only by @ivannovosad in https://github.com/getlago/lago-api/pull/2012 * chore(gql): move organization types to organizations subfolder by @julienbourdeau in https://github.com/getlago/lago-api/pull/2034 * misc(okta): add okta in integration enum by @jdenquin in https://github.com/getlago/lago-api/pull/2038 * feat(accounting-integrations): Add service that push Lago invoice in accounting provider by @lovrocolic in https://github.com/getlago/lago-api/pull/2033 * chore(puma): Tweak puma configuration by @jdenquin in https://github.com/getlago/lago-api/pull/2037 * misc: add Okta as an integration type union by @ansmonjol in https://github.com/getlago/lago-api/pull/2041 * misc: membership role cannot be null by @ansmonjol in https://github.com/getlago/lago-api/pull/2040 * fix(integrations): Address customer QA returns by @ivannovosad in https://github.com/getlago/lago-api/pull/2042 * feat(tests): Test dates service with tz change during grace period by @julienbourdeau in https://github.com/getlago/lago-api/pull/2016 * fix(integrations): Add an association and indices by @ivannovosad in https://github.com/getlago/lago-api/pull/2044 * misc: Enable TrailingCommaInHashLiteral rubocop rule by @rsempe in https://github.com/getlago/lago-api/pull/2031 * misc: Ignore TrailingCommaInHashLiteral commit for blame by @rsempe in https://github.com/getlago/lago-api/pull/2046 * fix(custom_agg): Improve scenarios to match real use cases by @vincent-pochet in https://github.com/getlago/lago-api/pull/2015 * feat(gql): Add admin_count custom metadata for organization members by @julienbourdeau in https://github.com/getlago/lago-api/pull/2039 * feat(webhook): Break down SendWebhookJob into 2 jobs (one creates the models, the other sends HTTP) by @julienbourdeau in https://github.com/getlago/lago-api/pull/1993 * fix(integrations): Fix integration customer update service by @ivannovosad in https://github.com/getlago/lago-api/pull/2047 * feat(wallet): Do not refresh wallets balance without cache by @rsempe in https://github.com/getlago/lago-api/pull/2048 * fix(webhooks): change webhook payload format by @lovrocolic in https://github.com/getlago/lago-api/pull/2053 * feat (accounting-integrations): add logic for creating integration sales order by @lovrocolic in https://github.com/getlago/lago-api/pull/2049 * Integrations invoices jobs by @ivannovosad in https://github.com/getlago/lago-api/pull/2020 * feat(integrations): Add graphql for syncing invoices by @ivannovosad in https://github.com/getlago/lago-api/pull/2043 * feat(rbac): Allow role to be edited in graphql by @julienbourdeau in https://github.com/getlago/lago-api/pull/2052 * fix(integration): Fix sync services and netsuite graphql type by @ivannovosad in https://github.com/getlago/lago-api/pull/2057 * chore(tests): Add cache metadata to configure Rails.cache driver by @julienbourdeau in https://github.com/getlago/lago-api/pull/2055 * misc: Stop using quantified events by @vincent-pochet in https://github.com/getlago/lago-api/pull/1987 * bug: admin_count should count active memberships by @ansmonjol in https://github.com/getlago/lago-api/pull/2060 * feat: Introduce Deprecation tracking by @julienbourdeau in https://github.com/getlago/lago-api/pull/2056 * feat(wallet): Handle method and target_ongoing_balance for recurring transaction rule by @rsempe in https://github.com/getlago/lago-api/pull/2051 * feat(okta): Add Okta integration uniqueness by @jdenquin in https://github.com/getlago/lago-api/pull/2059 * feat(integrations): return external_id in invoice graphql object by @lovrocolic in https://github.com/getlago/lago-api/pull/2058 * misc: Auto retry PDF generate jobs in case of HTTP errors by @vincent-pochet in https://github.com/getlago/lago-api/pull/2064 * misc: Preload taxes for charge fees creation by @vincent-pochet in https://github.com/getlago/lago-api/pull/2063 * fix(integrations): Add integration id to integration customer input by @ivannovosad in https://github.com/getlago/lago-api/pull/2066 * fix(gocardless): Ignore refund not found when not comming from lago by @vincent-pochet in https://github.com/getlago/lago-api/pull/2067 * misc: Enable TrailingCommaInBlockArgs rubocop rule by @rsempe in https://github.com/getlago/lago-api/pull/2068 * misc: Enable TrailingCommaInArrayLiteral rubocop rule by @rsempe in https://github.com/getlago/lago-api/pull/2070 * fix(integrations): Send webhook after create invoice fails by @ivannovosad in https://github.com/getlago/lago-api/pull/2069 * fix (integrations): add possibility to filter bm and add-ons in graphql resolvers by @lovrocolic in https://github.com/getlago/lago-api/pull/2071 * feat(wallet): Extract validation of RecurringTransactionRule by @rsempe in https://github.com/getlago/lago-api/pull/2072 * feat(clickhouse): Rewrite count query without CTE by @vincent-pochet in https://github.com/getlago/lago-api/pull/2073 * misc: add disable wallet refresh env var by @lovrocolic in https://github.com/getlago/lago-api/pull/2062 * feat(wallet): Remove duplication on wallet rules validation by @rsempe in https://github.com/getlago/lago-api/pull/2074 * feat: Parrallelize charge usage computation by @vincent-pochet in https://github.com/getlago/lago-api/pull/2076 * fix(current-usage): Manage connection pools with parallel threads by @vincent-pochet in https://github.com/getlago/lago-api/pull/2077 * feat(integrations): Include integration customers in customer created webhook by @ivannovosad in https://github.com/getlago/lago-api/pull/2075 * feat(integrations): Add credit notes to graphql by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2080 * feat(integrations): Allow to sync invoice even if no item is mapped by @ivannovosad in https://github.com/getlago/lago-api/pull/2079 * feat(wallet): Extract creation of wallet transaction rule by @rsempe in https://github.com/getlago/lago-api/pull/2083 * misc(clickhouse): Define pool number by @jdenquin in https://github.com/getlago/lago-api/pull/2089 * fix(subscription): Pending subscription cancel status by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2082 * fix(integrations): Sync credit notes add should_sync_credit_note? by @ivannovosad in https://github.com/getlago/lago-api/pull/2084 * misc: Add a rake task to expire the cache of a given subscription by @vincent-pochet in https://github.com/getlago/lago-api/pull/2081 * feat(tax-integration): add anrok model changes by @lovrocolic in https://github.com/getlago/lago-api/pull/2095 * fix(webhook): Deserialize payload for older webhooks by @julienbourdeau in https://github.com/getlago/lago-api/pull/2092 * fix(integrations): Sync credit notes add service by @ivannovosad in https://github.com/getlago/lago-api/pull/2085 * fix(subscription): fix handling of started_at/ended_at by @vincent-pochet in https://github.com/getlago/lago-api/pull/2096 * feat(wallet): Refresh wallet balance on update by @rsempe in https://github.com/getlago/lago-api/pull/2094 * fix(integrations): Sync credit notes - create job by @ivannovosad in https://github.com/getlago/lago-api/pull/2086 * feat(invoice): Hide subscription fee when 0 by @vincent-pochet in https://github.com/getlago/lago-api/pull/2093 * fix(integrations): Sync credit notes graphql by @ivannovosad in https://github.com/getlago/lago-api/pull/2088 * feat(wallet): Add started_at to recurring_transaction_rules by @rsempe in https://github.com/getlago/lago-api/pull/2098 * feat(email): Use `img` tag to display Lago logo in emails by @julienbourdeau in https://github.com/getlago/lago-api/pull/2023 * feat(integrations): Fix credit notes amount by @ivannovosad in https://github.com/getlago/lago-api/pull/2099 * feat(pdf): Use `img` tag for Lago logo in invoices by @julienbourdeau in https://github.com/getlago/lago-api/pull/2021 ## Front Changes * chore: fetch memberships and their organizations by @ansmonjol in https://github.com/getlago/lago-front/pull/1503 * bug: fix invoice items aligments by @ansmonjol in https://github.com/getlago/lago-front/pull/1505 * feat: add RBAC core features by @ansmonjol in https://github.com/getlago/lago-front/pull/1504 * feat: add analytics route role guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1506 * feat: add billable metrics role guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1507 * feat: add plan route and actions role guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1508 * feat: add addOns route and actions role guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1509 * feat: add coupons route and actions role guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1510 * misc: improve replacement regex in script by @ansmonjol in https://github.com/getlago/lago-front/pull/1511 * feat: add coupon details page by @ansmonjol in https://github.com/getlago/lago-front/pull/1512 * bug: better handling of user loading in the app by @ansmonjol in https://github.com/getlago/lago-front/pull/1514 * feat: add large batch of RBAC permission logic guard by @ansmonjol in https://github.com/getlago/lago-front/pull/1515 * misc: add front-end feature flags logic using local storage by @keellyp in https://github.com/getlago/lago-front/pull/1516 * feat: add rbac guards for integrations page by @ansmonjol in https://github.com/getlago/lago-front/pull/1517 * feat: add rbac guards for integrations page by @ansmonjol in https://github.com/getlago/lago-front/pull/1518 * refactor(WalletForm) - split file into separate components by @keellyp in https://github.com/getlago/lago-front/pull/1520 * feat: add okta login method by @keellyp in https://github.com/getlago/lago-front/pull/1513 * misc(vscode): translate snippet by @keellyp in https://github.com/getlago/lago-front/pull/1522 * misc(creditNotes): use the generic query by @ansmonjol in https://github.com/getlago/lago-front/pull/1523 * misc: redirect to CN details after creation by @ansmonjol in https://github.com/getlago/lago-front/pull/1525 ## What's Changed * misc: Ensure clickhouse, redpanda, pdf and traefik are started by @rsempe in https://github.com/getlago/lago/pull/355 * misc: add LAGO_DISABLE_WALLET_REFRESH env var by @lovrocolic in https://github.com/getlago/lago/pull/352 **Full Changelog**: https://github.com/getlago/lago/compare/v1.3.0...v1.4.0