Commit graph

1822 commits

Author SHA1 Message Date
Kailash Nadh
496c89a461 Apply minor refactor in query loading logic and add missing queries.
- Remove statically hardcoded file names to globbing.
- Merge superfluous query reading functions.
- Retain old queryPath variable, readQueries() function name and the path arg.
2025-11-22 13:22:15 +05:30
13unk0wn
2ace00400f Delete queries.sql 2025-11-22 13:14:38 +05:30
13unk0wn
f21adea7f5 split query.sql into batches 2025-11-22 13:14:27 +05:30
Kailash Nadh
817048985c
Split models file to domain specific files (#2775)
Co-authored-by: Mithilesh Gupta <guptamithilesh@protonmail.com>
2025-11-22 12:27:08 +05:30
Kailash Nadh
750ce91c69 Fix incorrect doc for query param in /api/campaign. Closes #2772. 2025-11-22 10:13:42 +05:30
dependabot[bot]
60f7ac9351
Bump js-yaml from 4.1.0 to 4.1.1 in /frontend/email-builder (#2767)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-22 10:04:09 +05:30
Kailash Nadh
296245a1b3 Add 2FA TOTP support for authentication.
- Allow users to enable TOTP 2FA from the profile page by scanning a QR code.
- Create new `internal/tmptokens` in-memory token store for temp tokens for
  temporary login -> 2FA flow.
- Refactor reset methods to use this package instead of inline locked map.
2025-11-20 23:23:54 +05:30
dependabot[bot]
4c3b58cb90
Bump golang.org/x/crypto from 0.40.0 to 0.45.0 (#2766)
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.40.0 to 0.45.0.
- [Commits](https://github.com/golang/crypto/compare/v0.40.0...v0.45.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.45.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 10:29:00 +05:30
Kailash Nadh
75998ca5f6 Add Forgot password reset flow to the admin. Closes #2753.
- `Forgot password` link+form on the login page.
- A temporary TTL'd token (in-memory) is e-emailed to the user if the account is active.
- Simple reset password page followed by an instant login+redirect to the admin dashboard.
2025-11-19 00:29:51 +05:30
Kailash Nadh
ea1eb3f857 Add warning to users:manage permission in docs. Closes #2752. 2025-11-18 22:51:53 +05:30
Meysam
a2bfc0b77e
feat: add subscriber activity tracking UI in admin panel (#2756)
* feat: add subscriber activity tracking UI in admin panel
* Apply minor cosmetic fixes to the subscriber activity forum.

- Remove dead icon references
- Remove new i18n language strings and reuse existing ones
- Refresh i18n languages with new strings
- Tweak styles

---------

Co-authored-by: Kailash Nadh <kailash@nadh.in>
2025-11-18 22:22:16 +05:30
dependabot[bot]
b3f60a957f
Bump js-yaml from 4.1.0 to 4.1.1 in /frontend (#2761)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 21:41:28 +05:30
paulrudy
425c0d71f4
Update 3rd party instructions re Fly.io install (#2757)
Co-authored-by: paulrudy <paulrudy@noreply.codeberg.org>
2025-11-15 08:12:38 +05:30
Matthias Kröll
e469296bc8
Fix duplicate operationId in OpenAPI spec (#2758)
- Changed operationId for PUT /templates/{id}/default from 'updateTemplateById' to 'setDefaultTemplateById'
- Resolves issue #2729 where duplicate operationIds caused TypeScript type generation failures
- Both template endpoints now have unique operationIds as required by OpenAPI spec
2025-11-15 08:10:37 +05:30
Daniel Adeboye
22bcd70f01
feat: add Northflank deploy button (#2736) 2025-10-30 20:21:45 +05:30
Kailash Nadh
60c069d73d Fix per_page=all not working on GET bounces API. Closes #2678. 2025-10-25 17:52:04 +05:30
Kailash Nadh
b7e8b1ee1f Fix tx handler incorrectly sanitizing subscriber_emails[]. Closes #2726. 2025-10-25 17:36:50 +05:30
Kailash Nadh
cdf0a5c153 Add CORS configuration to security settings.
This patch adds a new CORS config textbox in Settings -> Security that allows
configuring CORS origin domains per line.

Closes #2724
2025-10-25 14:33:25 +05:30
dependabot[bot]
827a2081b0
Bump vite from 5.4.20 to 5.4.21 in /frontend (#2722)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.20 to 5.4.21.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.21/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.21/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.21
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 18:05:48 +05:30
Tristram
e8156e03ce
Update Czech translation (#2694)
General improvements to wording, consistency, and terminology.
2025-10-02 23:08:20 +05:30
dependabot[bot]
c666c4ff9e
Bump vite from 5.4.19 to 5.4.20 in /frontend (#2691)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.19 to 5.4.20.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.20/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.20/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.20
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 22:49:36 +05:30
Rohith Kumar Ankam
39658c446f
Add minor security enhancements (#2682)
- Remove `getHostByName` sprig function
- Fix ineffective constant-time-conparison protection in login
2025-09-29 20:29:30 +05:30
Kevin Cox
2085abefb4
Handle Postmark spam complaints. (#2679)
The code attempts to do this by handling the `SpamComplaint` `Type` however this is sent with a `RecordType` of `SpamComplaint` rather than `Bounce` so is ignored. Accepting this additional `RecordType` solves the issue.

This behaviour is described in Postmark's documentation.

> Note that that spam complaints, unsubscribes/subscribes, or manual deactivations have their own webhooks and are not trigged via the Bounce webhook.
>
> https://postmarkapp.com/developer/webhooks/bounce-webhook

https://postmarkapp.com/developer/webhooks/spam-complaint-webhook#spam-complaint-webhook-data
2025-09-29 20:23:58 +05:30
dependabot[bot]
fb60455d10
Bump vite from 5.4.18 to 5.4.20 in /frontend/email-builder (#2660)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.18 to 5.4.20.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.20/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.20/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.20
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 20:23:14 +05:30
dependabot[bot]
27f58efae9
Bump axios from 1.8.2 to 1.12.0 in /frontend (#2666)
Bumps [axios](https://github.com/axios/axios) from 1.8.2 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.8.2...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 20:23:04 +05:30
Tristram
06275f1907
Update Czech translations (#2688)
- archiveSlug: "URL Slug" → "URL identifikátor"
- managePrefs: "Zpráva předvoleb" → "Správa předvoleb"
2025-09-29 20:21:39 +05:30
albanobattistella
2c5dc61427
Update it.json (#2667) 2025-09-15 11:17:17 +05:30
Rosano
d661fa874f
Fix typo in docs (#2664) 2025-09-13 12:10:45 +05:30
SweetPPro
a76099e9e5
incorrect ALTCHA Form challengeurl (#2654)
fixes incorrect ALTCHA Form challengeurl
2025-09-10 10:44:22 +05:30
Kailash Nadh
943a961bfc Update release details on the static homepage. 2025-09-09 23:35:51 +05:30
Kailash Nadh
30846f8415 Ignore altcha.umd.js from frontend build so that goreleaser ignores it. 2025-09-09 23:15:27 +05:30
Kailash Nadh
e27a3904c6 Expand the warning on subscribers:sql_query permission on arbitrary SQL functions. 2025-09-09 22:59:45 +05:30
Kailash Nadh
6d99316528 Auto-translate new i18n language strings. 2025-09-09 22:35:48 +05:30
Kailash Nadh
d4007d5148 Fix Go tpl expressions breaking in Visual editor HTML.
Closes #2593.
Closes #2499.
2025-09-09 22:29:46 +05:30
Kailash Nadh
deb41f8d1c Add i18n translation helper script. 2025-09-09 22:28:34 +05:30
Kailash Nadh
81d05e4dd6 Suppress optin e-mail send errors on subscriber insert/edit APIs. 2025-09-09 21:12:01 +05:30
Kailash Nadh
fcbebc272b Update Cypress trests on the campaign file attach UI. 2025-09-09 00:15:03 +05:30
dependabot[bot]
e8b0eafc00
Bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 (#2634)
Bumps [github.com/go-viper/mapstructure/v2](https://github.com/go-viper/mapstructure) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/go-viper/mapstructure/releases)
- [Changelog](https://github.com/go-viper/mapstructure/blob/main/CHANGELOG.md)
- [Commits](https://github.com/go-viper/mapstructure/compare/v2.3.0...v2.4.0)

---
updated-dependencies:
- dependency-name: github.com/go-viper/mapstructure/v2
  dependency-version: 2.4.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 18:30:21 +05:30
Kailash Nadh
301c13a60d Add optional subject param to tx API. Closes #2333. 2025-09-08 18:21:12 +05:30
Kailash Nadh
ad66878ea0 Fix list action icons not showing on the UI based on permissions. Closes #2640. 2025-09-08 17:52:44 +05:30
Kailash Nadh
fbe4c5c9e7 Make session cookie samesite to prevent CSRF requests. 2025-09-08 17:52:13 +05:30
Tobias Wiesing
ea88b94413
Add link for n8n node (#2649) 2025-09-03 11:23:18 +05:30
Kailash Nadh
7d38890868 Change OIDC init to lazy-load instead of loading once on boot. Fixes #2626. 2025-08-18 19:10:19 +05:30
Kailash Nadh
961116468b Refresh i18n language files. 2025-08-16 16:57:32 +05:30
Kailash Nadh
09d291e119 Add support for built-in ALTCHA CAPTCHA implementation.
The existing hCaptcha implementation as the only CAPTCHA option isn't ideal
as hCaptcha is a proprietary SaaS provider. This commit adds supports for
ALTCHA (altcha.org) a self-contained "proof-of-work" based CAPTCHA option.

Closes #2243.
2025-08-16 16:48:20 +05:30
Kailash Nadh
38387d0079 Fix List-Unsubscribe header incorrectly sent on opt-in confirmation. Closes #2619. 2025-08-10 14:32:50 +05:30
Kailash Nadh
eef0021366 Add support for loading secrets from *_FILE env vars in Docker environment.
Closes #2455.

Co-Authored-By: Michael Redig <mredig@gmail.com>
2025-08-09 14:41:13 +05:30
dependabot[bot]
4a93184c7e
Bump tmp from 0.2.3 to 0.2.4 in /frontend (#2617)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 13:25:12 +05:30
Kailash Nadh
ad67fc62a6 Refactor landing page on the website.
- Clean up sections.
- Add OS logos for binary downloads.
2025-08-05 00:04:57 +05:30
Kailash Nadh
4d74cf4520 Tweak log viewer to optionally hide filename from log lines (on the import UI). 2025-08-03 19:17:53 +05:30