147 Commits

Author SHA1 Message Date
Miguel Ribeiro
e9135115d0 fix: use themed version of the logo on edit subscription page (#1133) 2026-07-19 15:38:39 +02:00
Miguel Ribeiro
aff3ed06b1 feat: add OIDC_REQUIRE_EMAIL_VERIFIED environment variable and SSRF_ALLOWLIST environment variable
feat: add Arabic localization
feat: add manual logo search box and png prioritization
fix: pin discord notification action to a commit sha
fix: service worker caching stale logo search results and broken images as logos
fix: ai recommendations not handling varied provider responses
fix: deleting orphaned logos not taking into account themed variants
fix: stats page not using themed logo variants
fix: email notification test rejecting non-admin users
fix: notification test/send requests hanging on unreachable hosts
fix: progress bar showing 100% when next payment is more than one cycle away
2026-07-18 23:33:40 +02:00
Jan Leon
9f7f2c68ba Improve AI response handling (#1127) 2026-07-18 20:24:48 +02:00
Jan Leon
2ffcdb436f Improve logo search reliability and controls and ai generation (#1126) 2026-07-18 20:18:42 +02:00
salehnemari-max
8a98a49a34 add complete Arabic localization and RTL support (#1125) 2026-07-18 19:46:46 +02:00
Uniskela
4b8fbe578c feat: add payment-period budgeting 2026-07-18 18:58:13 +02:00
Miguel Ribeiro
921fcfd159 feat: better navigation inside logo search
feat: improve menu navigation on grid mode
feat: add new logo themed versions generation to add subscription api endpoint
fix: syntax error on nl.js translation file
feat: bottom sheet slide up animation
2026-07-14 23:15:56 +02:00
Miguel Ribeiro
8d22f04353 feat: create dark and light theme versions of the logos when removing background
fix: ajax calls after session expired
refactor: remove imagick dependency
2026-07-13 00:36:09 +02:00
Miguel Ribeiro
11eaf402e8 feat!: complete ui overhaul (#1108)
feat: option for the week to start on sunday
feat: redesign login / registration pages
feat: more statistics
feat: declarative oidc settings
feat: grid view for subscriptions
feat: subscription details popup
feat: translate categories with ai
feat: google image search with serpapi
feat: selfh.st image search
feat: dashboard icons image search
fix: improve background removal feature for logos
feat: v2.0 api - write endpoints
fix: include todays subscriptions on amount due this month
fix: calendar occurrences to respect subscription start date
fix: honor configured outbound proxy for logo search without reopening httpoxy SSRF bypass
fix: remove hardcode string from the admin page
fix: ssrf via http proxy env var in payments logo search
fix: require cron auth guard on storetotalyearlycost.php
fix: validate per-user smtp host against ssrf
fix: escape iCal property values to prevent crlf injection
2026-07-11 23:54:52 +02:00
Duc-Thomas
f01685e0eb feat: Allow setting beginning of week as Sunday in calendar (#1010)
* Add week_starts_sunday setting functionality

- Implemented a new endpoint to update the week_starts_sunday setting.
- Modified the settings retrieval to include week_starts_sunday.
- Added translation for the week_starts_sunday label.
- Updated user creation to include week_starts_sunday in the settings.
- Created a migration to add week_starts_sunday column to the settings table.
- Updated registration and settings scripts to handle week_starts_sunday.
- Added a checkbox in the settings UI for users to set their preference for the week starting on Sunday.

* fix: validate week_starts_sunday input before reading it

---------

Co-authored-by: Miguel Ribeiro <k.d.mintnick@gmail.com>
2026-07-09 22:00:39 +02:00
Miguel Ribeiro
b75f13d0ff fix: harden oidc state validation and session rotation (#1071)
fix: account takeover via email-based account linking
fix: missing fields when cloning a subscription
fix: ssrf via oidc token/userInfo url configuration
fix: ssrf via test email notification
fix: zip slip path traversal in database restore writes files to webroot
2026-06-23 00:17:18 +08:00
Miguel Ribeiro
51f9c1ea68 validate oidc state parameter to prevent csrf login attack
fix: secure unauthenticated db restore endpoint with a setup token
fix: restrict migrate.php to CLI and admin session
2026-06-06 22:56:46 +02:00
Sándor
fdec9952bd add language Hungarian (#1072)
Co-authored-by: sandros <me@sandros.hu>
2026-05-27 21:42:43 +02:00
Miguel Ribeiro
0fef9597ef fix: null array on empty subscription list
fix: don't use mbstring
feat: sort graphs on the statistics page by usage
feat: lifetime subscriptions
feat: allow multiple filters on the settings page
feat: filter by notification status
fix: migrations using double quotes
feat: rework icons
fix: open 3 dot menu abone for the subscriptions at the bottom
fix: ntfy notifications with strange chars
2026-05-17 00:54:14 +02:00
Miguel Ribeiro
8d43623da9 fix: improve date formatting with IntlDateFormatter fallback (b2c565f) (#1048)
fix: missing year for subscription next payment display (ca5823d)
2026-04-27 22:26:19 +02:00
Miguel Ribeiro
99c30e70c8 feat: add openai compatible host for ai recommendations
feat: move update banner to the dashboard
fix: handle some ai responses that come in a different format
chore: handle deprecation of curl_close
feat: enable ai recommendations at a schedule
2026-03-23 16:24:26 +00:00
Miguel Ribeiro
4fd87c3014 fix: session expiration on pwa on android (#1023)
fix: image search failing to save
2026-03-21 18:05:59 +00:00
mister-ben
69613766bc retain first and last names on language change during registration (#995) 2026-03-18 15:31:57 +00:00
g0b3x98
e4b66cb265 Add Romanian Translation (#1015) 2026-03-18 15:30:22 +00:00
LumiDev
f3ab48360c Add AI API key field visibility toggle (#998)
Co-authored-by: Lumi <LumiSnep@proton.me>
2026-03-18 15:29:11 +00:00
LumiDev
4bb69e7df6 update AI recommendation numbering after delete (#996)
Co-authored-by: Lumi <LumiSnep@proton.me>
2026-03-18 15:27:08 +00:00
Miguel Ribeiro
e8a513591d fix: ssrf vulnerability on all test notifications endpoint
fix: xss vulnerability on password reset page
fix: vulnerability allowed to delete avatars from other users
chore: bump version
2026-03-05 23:13:51 +01:00
Easy
279ddf61ce add serverchan notification (#951)
* add serverchan notification

* Update endpoints/cronjobs/sendnotifications.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update endpoints/notifications/testserverchannotifications.php

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Miguel Ribeiro <k.d.mitnick@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-20 15:06:49 +00:00
Albert Brugués
2a371a1a75 Added catalan translation (#960) 2025-12-20 15:01:33 +00:00
Miguel Ribeiro
3247ce2c87 feat: enforce CSRF protection and POST-only policy across endpoints (#940) 2025-10-18 23:58:50 +02:00
Dani Bento
75c94ad15c add support for mattermost notifications (#923)
Signed-off-by: Daniela Filipe Bento <danibento@overdestiny.com>
2025-10-12 12:42:39 +02:00
Miguel Ribeiro
27ac805141 feat: make container shutdown instant & graceful
feat: make container shutdown instant & graceful  (#916)
feat: add pushplus notification service  (#911)
feat: option to delete ai recommendations
fix: parsing ai recommendations from gemini (#909)
2025-09-14 16:46:42 +02:00
xwdj
add646b5a3 pushplus是在中国一个可玩性很高的专用通知服务,特别是可以直接推送到微信这个使用人数最多的平台 (#911)
支持提交多种格式的消息,例如html样式,makedown文本,以及json格式,特别重要的是非会员用户额度
每天有200条推送机会,个人用户几乎可以免费使用他的服务,但是我在使用该项目webhook方式调用他们的
api时候,却有些水土不服,不能很好的支持,一些样式,为了更简便使用pushplus服务,现将该服务集成进
项目当中,仅需输入pushplus的消息token即可,然后就可以正常推送信息,样式也是正确的,我自己测试是
可以使用了,但是这个创建数据库的文件不知道在哪里改的,我是这样做的,手动创建的数据库。
CREATE TABLE "pushplus_notifications" (
    "enabled" BLOB NOT NULL DEFAULT (0),
    "token" TEXT,
    "user_id" TEXT
);
第一次给别人项目提交代码,如果有什么不好的地方,请提出来。
2025-09-14 11:31:38 +02:00
Miguel Ribeiro
ba6dddf526 feat: add at a glance dashboard
fix: accept both api_key and apiKey as parameter on the api
feat: allow to disable password login when oidc is enabled
feat: add get_oidc_settings endpoint to the api
feat: refactor css colors
feat: ai recommendations with chatgpt, gemini or ollama
feat: display ai recommendations on the dashboard
2025-08-12 00:48:13 +02:00
Miguel Ribeiro
c0d53e4423 feat: add oauth/oidc support (#873) 2025-07-21 22:53:35 +02:00
Miguel Ribeiro
d3fd9387d3 feat: set todays date on start subscription field for new subscriptions by default (#848) 2025-06-09 17:56:45 +02:00
Miguel Ribeiro
48db4e300d feat: add indonesian language (#842)
feat: add first and last names to the user profile
feat: enable IPv6 environments by configuring a dual-stack listen in nginx 
feat: add new currency
feat: add button to auto fill the next payment date
fix: vulnerability on test webhook endpoint
2025-06-08 18:52:21 +02:00
Christopher McAvaney
2e74c4bcb7 add first and last name fields to user profile (#835) 2025-06-08 14:51:26 +02:00
noomis
e06d4f1b21 calculate next Payment in Creation Form (#828)
Co-authored-by: noomis <everwatchyt@gmail.com>
2025-06-08 14:48:42 +02:00
dirman
a7e26f688a add indonesian translations (#833) 2025-05-27 18:00:28 +02:00
LovelessCodes
02a5b1e74c add Danish translation (#816) 2025-05-08 17:26:16 +02:00
Miguel Ribeiro
69c7d52cf8 fix: vulnerability on delete avatar
fix: some strings not using translations on the calendar page
fix: delete avatar would not work if wallos is on a subfolder
2025-05-03 15:37:10 +02:00
Miguel Ribeiro
e0f204803e feat!: simplified webhook notifications without iterator (might break your current webhook settings)
feat: use mobile style toggles instead of checkboxes
fix: barely readable placeholder text on textarea on dark the
feat: webhooks can now be used for cancelation notifications
2025-04-27 17:28:29 +02:00
Miguel Ribeiro
1bec973803 feat: add ukranian translation (#756)
feat: add sort by renew type
feat: add filter by renew type
fix: state filter not cleared by clear button
fix: special chars on calendar exports
fix: special chars on notifications
feat: remove "Wallos" text from calendar export
fix: ical trigger to spec RFC5545
2025-03-19 18:53:39 +00:00
Mykola Kliashtornyi
65559a9743 Ukrainian translation and currency (#752) 2025-03-19 15:27:36 +00:00
marapavelka
d1be6f9cb7 Create cs.js (#696)
Complete Czech translation
2025-01-19 14:32:03 +01:00
Miguel Ribeiro
ff13fcb654 feat: option to show progress of subscription cycle
fix: currency symbol for monthly budget
feat: new api endpoint that returns the version
chore: fix typo on documentation
2025-01-12 00:55:12 +01:00
Miguel Ribeiro
e7185f9257 fix: xss security vulnerability with the avatar selection
fix: don't update next payment date for disabled subscriptions
feat: add total monthly cost trend graph to the statistics page
feat: allow email notifications without authentication
2024-12-21 00:22:21 +00:00
Miguel Ribeiro
5e6bc903bc feat: add payment cycle to csv/json export
feat: run db migration after restoring database
feat: run db migration after importing db
feat: store weekly the total yearly cost of subscriptions
fix: double encoding in statistics labels
2024-12-12 00:09:51 +01:00
Lauren Westenberg
ac75d25511 Add dutch translations (#654) 2024-12-10 23:17:21 +01:00
Miguel Ribeiro
f5ddbff0c1 feat: add icalendar subscription 2024-12-06 18:45:05 +01:00
Miguel Ribeiro
6e44a26703 feat: add some leeway for totp codes
feat: add start date to subscriptions
feat: add option for manual/automatic renewals
fix: layout issue with subscriptions list during search
2024-11-17 16:27:48 +01:00
Miguel Ribeiro
bd5e351182 fix: only show swipe hint on mobile screens (#612) 2024-11-03 21:15:49 +01:00
Miguel Ribeiro
49666f867c feat: add hint for mobile swipe action (#608) 2024-11-03 20:12:01 +01:00
Miguel Ribeiro
28444abef1 feat: swipe subscription for actions on the experimental mobile navigation
feat: new menu icons
2024-11-02 00:26:58 +01:00