v1.17.0

getlago/lagov1.17.0Dec 3, 2024by vincent-pochet

AI Summary

Significant frontend overhaul including a migration to Tailwind CSS and comprehensive Salesforce integration.

Key Highlights

  • Frontend migration to Tailwind CSS.
  • Salesforce integration (sync invoices, webhooks).
  • Dunning campaign improvements (soft deletion, flags).
  • Support for multiple API keys.

New Features

  • Sync invoices to Salesforce
  • Manage multiple API keys
  • Dunning campaign soft deletion and flags
  • Migrate button to tailwind

Full Release Notes

## Front changes
* misc: allow decimal on adjusted fee amount by @ansmonjol in https://github.com/getlago/lago-front/pull/1864
* secu: bump eslint for CVE-2024-21539 by @ansmonjol in https://github.com/getlago/lago-front/pull/1867
* misc: update package author section by @ansmonjol in https://github.com/getlago/lago-front/pull/1868
* bug: orga switch should reset cache and invalidate all active queries by @ansmonjol in https://github.com/getlago/lago-front/pull/1870
* misc: adapt fee copy for 1 tier graduated & percentage graduated by @ansmonjol in https://github.com/getlago/lago-front/pull/1873
* feat: sync invoices to Salesforce by @keellyp in https://github.com/getlago/lago-front/pull/1869
* misc(RouteWrapper): use tailwind by @ansmonjol in https://github.com/getlago/lago-front/pull/1874
* misc(CustomerPortal): display some excluding tax label when needed by @ansmonjol in https://github.com/getlago/lago-front/pull/1875
* refactor: move invoice settings into folder by @keellyp in https://github.com/getlago/lago-front/pull/1876
* (fix): Fix custom expression crashing by @stephenlago99 in https://github.com/getlago/lago-front/pull/1878
* refactor(Chip): rewrite styled component to tailwind by @stephenlago99 in https://github.com/getlago/lago-front/pull/1877
* feat: migrate button to tailwind by @keellyp in https://github.com/getlago/lago-front/pull/1879
* misc(Accordion): Use tailwind internally by @ansmonjol in https://github.com/getlago/lago-front/pull/1880
* bug: prevent space removal when opening wallet in list by @ansmonjol in https://github.com/getlago/lago-front/pull/1882
* bug(Accordion): make sure noContentMargin condition overrides by @ansmonjol in https://github.com/getlago/lago-front/pull/1883
* misc(GenericPlaceholder): use tailwind internally by @ansmonjol in https://github.com/getlago/lago-front/pull/1881
* feat: edit/delete dunnings by @keellyp in https://github.com/getlago/lago-front/pull/1871
* refactor: remove usage of ButtonGroup by @keellyp in https://github.com/getlago/lago-front/pull/1884
* feat: manage multiple api keys by @ansmonjol in https://github.com/getlago/lago-front/pull/1872
* chore(config): migrate renovate config by @renovate in https://github.com/getlago/lago-front/pull/1887
* deps: remove resolutions and update some packages by @ansmonjol in https://github.com/getlago/lago-front/pull/1885
* chore(deps-minor) Update dependency @types/lodash to v4.17.13 by @renovate in https://github.com/getlago/lago-front/pull/1591
* misc: unify interval copy lookup usage by @ansmonjol in https://github.com/getlago/lago-front/pull/1888
* bug(Skeleton): prevent non text loading to take full width by @ansmonjol in https://github.com/getlago/lago-front/pull/1889
* misc: hunt empty classname and restore value when needed by @ansmonjol in https://github.com/getlago/lago-front/pull/1890
* misc: remove MUI warning by @ansmonjol in https://github.com/getlago/lago-front/pull/1886
* misc: recast type to remove ts expected error comment by @ansmonjol in https://github.com/getlago/lago-front/pull/1891
* bug: wrong interaction style definition by @ansmonjol in https://github.com/getlago/lago-front/pull/1894
* bug: adjust styles that been broken after recent package bump by @ansmonjol in https://github.com/getlago/lago-front/pull/1895
* misc: make sure we control filter values displayed by @ansmonjol in https://github.com/getlago/lago-front/pull/1897
* fix(MultipleComboBox): Fix chip spacing by @stephenlago99 in https://github.com/getlago/lago-front/pull/1898
* (refactor): Refactor drawer to tailwind by @stephenlago99 in https://github.com/getlago/lago-front/pull/1896
* feat: Overdue column in invoices list by @stephenlago99 in https://github.com/getlago/lago-front/pull/1900
* refactor: card tailwind migration by @keellyp in https://github.com/getlago/lago-front/pull/1899
* feat: migrate code snippet component by @keellyp in https://github.com/getlago/lago-front/pull/1902


**Full Changelog**: https://github.com/getlago/lago-front/compare/v1.16.0...v1.17.0

## API changes
* feat(dunning): Allow soft deletion on dunning campaign by @rsempe in https://github.com/getlago/lago-api/pull/2833
* feat(dunning): Add flag to customers when completed a dunning campaign by @ancorcruz in https://github.com/getlago/lago-api/pull/2832
* Fix: allow to edit fees with more than 2 decimal price by @annvelents in https://github.com/getlago/lago-api/pull/2828
* feat(daily_usage): Compute and store usage_diff by @vincent-pochet in https://github.com/getlago/lago-api/pull/2800
* bug(Coupon) - Use advisory lock to make sure coupon application is correct by @nudded in https://github.com/getlago/lago-api/pull/2837
* feat(dunning): Mutation to delete a dunning campaign by @rsempe in https://github.com/getlago/lago-api/pull/2835
* feat(dunning): Add DunningCampaign resolver to graphql api by @ancorcruz in https://github.com/getlago/lago-api/pull/2834
* perf(BillableMetrics) - Improve query to get active subscriptions count by @nudded in https://github.com/getlago/lago-api/pull/2845
* misc(daily_usage): Extract daily_usage history from rake task to a service by @vincent-pochet in https://github.com/getlago/lago-api/pull/2843
* misc: Add missing require in DailyUsages::FillHistoryService by @vincent-pochet in https://github.com/getlago/lago-api/pull/2846
* perf(BillableMetric) - Optimize draft_invoices_count by @nudded in https://github.com/getlago/lago-api/pull/2847
* misc: Deprecate counters at billable metric index level by @vincent-pochet in https://github.com/getlago/lago-api/pull/2848
* Fix(anrok): Taxes not fully applied by @annvelents in https://github.com/getlago/lago-api/pull/2842
* misc: Activate aggregate_failures by default on specs by @rsempe in https://github.com/getlago/lago-api/pull/2849
* misc: Fix existing rubocop issues by @rsempe in https://github.com/getlago/lago-api/pull/2850
* bug(CustomerQuery) - Allow searching on legal_name by @nudded in https://github.com/getlago/lago-api/pull/2851
* feat(dunning): extend DunningCampaigns::UpdateService update all fields by @ancorcruz in https://github.com/getlago/lago-api/pull/2836
* feat(dunning): extend DunningCampaigns Update mutation and types to update all campaign attributes by @ancorcruz in https://github.com/getlago/lago-api/pull/2844
* fix: Plans::UpdateAmountService handle pending subscription upgrades by @ancorcruz in https://github.com/getlago/lago-api/pull/2827
* fix: failing specs by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2856
* feat(dunning): Reset customers last attempt on dunning campaign deletion by @rsempe in https://github.com/getlago/lago-api/pull/2840
* Revert "fix(netsuite): Aggregator jobs should be unique (#2818)" by @ivannovosad in https://github.com/getlago/lago-api/pull/2855
* Revert "Revert "fix(netsuite): Aggregator jobs should be unique (#2818)"" by @nudded in https://github.com/getlago/lago-api/pull/2860
* fix(unique-jobs): Fix on retry in unique jobs by @ivannovosad in https://github.com/getlago/lago-api/pull/2862
* feat(salesforce): Add integration inputs, type and mutations by @ivannovosad in https://github.com/getlago/lago-api/pull/2799
* feat(dunning): reset customer dunning campaign last attempt data on threshold changes by @ancorcruz in https://github.com/getlago/lago-api/pull/2861
* feat(dunning): Fix unique validations on dunning campaign by @rsempe in https://github.com/getlago/lago-api/pull/2865
* feat(dunning): flag customers as dunning campaign completed... by @ancorcruz in https://github.com/getlago/lago-api/pull/2866
* Add organization_id to Fee by @nudded in https://github.com/getlago/lago-api/pull/2858
* feat(dunning): unflag customers as dunning campaign completed... by @ancorcruz in https://github.com/getlago/lago-api/pull/2868
* Bug(Events) - make sure to cleanup clickhouse events after billable metric removal by @nudded in https://github.com/getlago/lago-api/pull/2863
* feat(api-key-management): Add permissions to the ApiKey by @floganz in https://github.com/getlago/lago-api/pull/2853
* feat(dunning): Dunning Campaign processing skip customers completed by @ancorcruz in https://github.com/getlago/lago-api/pull/2869
* feat(dunning): flag customers as dunning campaign completed by @ancorcruz in https://github.com/getlago/lago-api/pull/2870
* misc: Add deleted_at to index_charges_on_billable_metric_id by @rsempe in https://github.com/getlago/lago-api/pull/2872
* feat(dunning): Assign dunning campaign when creating a payment request by @rsempe in https://github.com/getlago/lago-api/pull/2873
* feat(dunning): reset customer dunning counters on invoice updates by @ancorcruz in https://github.com/getlago/lago-api/pull/2876
* feat(dunning): reset customer dunning campaign status on payment request succeeded payment status by @ancorcruz in https://github.com/getlago/lago-api/pull/2875
* feat(dunning): Populate dunning_campaign_completed on existing customers by @rsempe in https://github.com/getlago/lago-api/pull/2867
* hotfix(taxes): Remove charges count from taxes serializer by @jdenquin in https://github.com/getlago/lago-api/pull/2877
* feat(salesforce): Fill IntegrationCustomer on salesforce integration  by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2864
* misc: extend tax error details for validationError by @lovrocolic in https://github.com/getlago/lago-api/pull/2878
* Revert "hotfix(taxes): Remove charges count from taxes serializer" by @nudded in https://github.com/getlago/lago-api/pull/2881
* fix(taxes): Improve charges count by @jdenquin in https://github.com/getlago/lago-api/pull/2885
* fix: fix typo on credit notes by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2886
* perf(EventMatchingService) - Do not use #all by @nudded in https://github.com/getlago/lago-api/pull/2883
* feat(dunning): flag customer as dunning campaign completed on last attempt execution by @ancorcruz in https://github.com/getlago/lago-api/pull/2889
* feat(salesforce): Add create customer without external id by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2887
* feat(api-key-management): Add ability to update API key via graphql by @floganz in https://github.com/getlago/lago-api/pull/2871
* feat(dunning): Remove dunning_campaign_completed flag by @rsempe in https://github.com/getlago/lago-api/pull/2890
* misc(throttling): Add concurrent jobs throttling config by @ivannovosad in https://github.com/getlago/lago-api/pull/2839
* fix(netsuite): Add amount to invoice line items by @ivannovosad in https://github.com/getlago/lago-api/pull/2874
* feat(PostProcessing) - Add source field to kafka event to eliminate double processing by @nudded in https://github.com/getlago/lago-api/pull/2879
* feat(salesforce): Added sync salesforce invoice id by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2888
* feat (tax-integrations): auto retry failed invoice due to api limit by @lovrocolic in https://github.com/getlago/lago-api/pull/2884
* Feat amount details graduated percentage by @annvelents in https://github.com/getlago/lago-api/pull/2880
* Fix: missing parent charge in the database by @annvelents in https://github.com/getlago/lago-api/pull/2893
* misc(api-key-management): Add permissions params to create API key mutation by @floganz in https://github.com/getlago/lago-api/pull/2892
* fix(netsuite): Fix quantity sent to netsuite by @ivannovosad in https://github.com/getlago/lago-api/pull/2895
* perf(EventsApi) - order events by timestamp rather than created_at by @nudded in https://github.com/getlago/lago-api/pull/2897
* feat: rubocop by @brunomiguelpinto in https://github.com/getlago/lago-api/pull/2903
* build(deps): bump rails-html-sanitizer from 1.6.0 to 1.6.1 by @dependabot in https://github.com/getlago/lago-api/pull/2902
* Feat: clear invoice data rake task by @annvelents in https://github.com/getlago/lago-api/pull/2898
* fix(customer): Catch ActiveRecord::RecordNotUnique when creating with API by @vincent-pochet in https://github.com/getlago/lago-api/pull/2905
* fix(customer): Fix update customer webhook by @ivannovosad in https://github.com/getlago/lago-api/pull/2904
* fix: update applied prepaid credits service exit case by @lovrocolic in https://github.com/getlago/lago-api/pull/2901
* Fix: progressive billing invoice for subscription period by @annvelents in https://github.com/getlago/lago-api/pull/2906


**Full Changelog**: https://github.com/getlago/lago-api/compare/v1.16.0...v1.17.0

## What's Changed
* misc: Version 1.17.0 by @vincent-pochet in https://github.com/getlago/lago/pull/432


**Full Changelog**: https://github.com/getlago/lago/compare/v1.16.0...v1.17.0