Skip to content

v0.7.0

Latest

Choose a tag to compare

@virtualtam virtualtam released this 26 Jul 19:50
· 39 commits to main since this release
v0.7.0

Security

  • Update Chi HTTP middleware to read the remote client IP address from a header set by a reverse proxy
  • Prevent the HTTP client used to fetch syndication feeds from performing requests to unroutable or blocked IP address ranges.
  • Fully invalidate user sessions on logout and password change
  • Periodically invalidate expired user sessions
  • Rate-limit login attempts by resolved client IP and by user email
  • Set the Secure and SameSite attributes for session cookies

Fixed

Packaging and automation

  • Add missing command-line flags to Make targets used for local development

Feeds

  • Ensure each feed has a unique slug

Added

Monitoring

  • Expose Prometheus metrics for periodic feed synchronization tasks

Changed

Packaging and automation

  • Update direct and transitive dependencies

Bookmarks

  • Improve test coverage for bookmark operations
  • When attempting to add a bookmark for a URL that belongs to an existing bookmark, display a conflict resolution form

Feeds

  • Improve test coverage for feed operations
  • Bump gofeed to v1.4.0
  • If a feed entry URL only consists in a relative path, attempt to build its full URL from the feed's base URL

User

  • Refactor model validation for user creation and update
  • Require a minimum password length (8 characters)

WWW

  • Add helper to render a single named HTML template
  • Add method to retrieve a given feed entry
  • Use Alpine.js to show/hide navbar menus on hover
  • Use HTMX to partially refresh the bookmarks list on:
    • Navigating result pages
    • Searching bookmarks
  • Use HTMX to partially refresh the tag list page on:
    • Navigating result pages
    • Searching tags
  • Use HTMX to partially refresh the feed list on:
    • Changing the All / Read / Unread filter
    • Toggling entry summaries
    • Marking all entries as read
    • Toggling an entry's read status
    • Navigating result pages
    • Searching entries
    • Selecting a given category
    • Selecting a given subscription
  • Rework edition forms as modals:
    • Bookmark edition form
    • Bookmark tag edition form
    • Feed category edition form
    • Feed subscription edition form
  • Homogenize edition form layout, use horizontal fields
  • Rework deletion forms as modals
  • Map domain errors to user-facing error messages