29 Commits

Author SHA1 Message Date
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
Jonathan Rehm
de59c1e6c6 add SSRF_ALLOWLIST environment variable (#1123)
By allowing this to be set via environment variable, we are one step
closer to OIDC being available immediately on initial start-up.
2026-07-18 19:41:11 +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
chaochaoweb3
0b9aa7e529 Fix monthly cost currency fallback 2026-07-11 22:21:22 +02:00
Ali Khattab
b9567c3d2e Add declarative OIDC (#1056)
* feat(oidc): add declarative runtime configuration

* feat(admin): reflect env-managed oidc settings

* docs(oidc): document environment variables

* chore: match repo line endings and dedupe compose comment

---------

Co-authored-by: Miguel Ribeiro <k.d.mitnick@gmail.com>
2026-07-09 22:54:12 +02: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
Pedro Pombeiro
671763e78b use stable UID for iCal events to prevent duplicates (#966)
Changed UID generation from uniqid() to a stable format based on
subscription ID (wallos-subscription-{id}@wallos). This ensures that
calendar applications update existing events instead of creating
duplicates when the feed is refreshed.

According to RFC 5545 section 3.8.4.7, the UID property must be
globally unique and persistent for the lifetime of the event.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 15:04:41 +00:00
Pedro Pombeiro
b6b0abed0d fix: use RFC 5545 compliant date format in iCal exports (#965)
* fix: use RFC 5545 compliant date format in iCal exports

Fixes iCal date format to comply with RFC 5545 specification by:
- Adding VALUE=DATE parameter to DTSTART and DTEND fields
- Using date-only format (YYYYMMDD) instead of datetime format
- Removing incorrect timezone handling in exportcalendar.php

This resolves issues with calendar applications that strictly validate
iCal format, as reported in gethomepage/homepage#6091.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix: add required DTSTAMP property to iCal VEVENT components

According to RFC 5545 section 3.8.7.2, the DTSTAMP property is
required in VEVENT components. It specifies the date and time that
the calendar object was created.

Added DTSTAMP in UTC format (gmdate) to both iCal export endpoints.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 15:03:55 +00:00
Miguel Ribeiro
3247ce2c87 feat: enforce CSRF protection and POST-only policy across endpoints (#940) 2025-10-18 23:58:50 +02:00
Miguel Ribeiro
d6329a7af5 fix: get_subscriptions api endpoint was not returning subscriptions (#937) 2025-10-12 17:36:26 +02:00
JamesAdams
efd292fab3 Enhance get_subscriptions API with admin access (#928) 2025-10-12 13:02:25 +02:00
Miguel Ribeiro
3ecc160ccb fix: redirect from dashboard to subscriptions for new users
fix: wrong check for disabling password login
fix: missing apikey validation error on get_monthly_cost api endpoint
chore: update readme
2025-08-13 13:55:31 +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
af68c11abf fix: incorrect headers on the api (#802) 2025-04-26 13:03:51 +02:00
Qetesh
b9295373b2 fix notify_days_before = -1 incompatible with ICS format (#778) 2025-04-16 11:00:08 +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
cloning5480
8e806b7846 Update get_ical_feed.php (#755)
Removed "Wallos: " from calendar event title
Added "P" period designator to alarm trigger
2025-03-19 15:26:11 +00:00
Miguel Ribeiro
87f148d174 feat: allow notifications on due date
fix: email notification test always sending to admins email
fix: don't expose disabled notifications to ical feed
2025-01-12 16:26:49 +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
ceear
6283542041 Change ical feed event to all day (#673)
Co-authored-by: ceear <real_cr@gmx.net>
2025-01-11 14:40:23 +01:00
Miguel Ribeiro
f5ddbff0c1 feat: add icalendar subscription 2024-12-06 18:45:05 +01:00
Qetesh
def68413de add iCalendar Subscription (#636) 2024-12-06 16:54:59 +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
5c92528808 feat: replacement for disabled subscriptions, to more accurately calculate savings 2024-10-29 18:26:07 +01:00
Miguel Ribeiro
07d456a9c3 feature: get subscriptions api endpoint
feature: get admin setting api endpoint
feature: get categories endpoint
feature: get currencies endpoint
feature: get fixer api endpoint
feature: get household api endpoint
feature: get notifications api endpoint
feature: get payment methods api endpoint
feature: get settings api endpoint
feature: get user api endpoint
2024-10-07 23:14:47 +02:00
Miguel Ribeiro
a173d2765f feat: fisrt api endpoint
feat: user has api key available on profile page
feat: api endpoint to calculate monthly cost
feat: split settings page into settings and profile page
feat: redesigned experimental mobile navigation menu
fix: small fixes and typos
2024-10-04 17:42:35 +02:00