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