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