aboutsummaryrefslogtreecommitdiff
path: root/webmentions_ssg (follow)
Commit message (Collapse)AuthorAge
* feat(sender): paginate sent webmention detailsDennis Fink2026-08-21
| | | | | | | | Load sent Webmentions with database-backed pagination instead of eagerly loading the full relationship for each source. Condense delivery, revision, and activity metadata in the source detail table and add pagination controls for large Webmention sets.
* feat(sender): add manual Webmention resend actionDennis Fink2026-08-21
| | | | | | | | Add an authenticated action to reopen a sent Webmention revision and queue it for delivery again from the source detail view. Clear the previous attempt state while preserving historical successful-send data, and show pending Webmentions explicitly in the UI.
* test(core): align tests with module ownershipDennis Fink2026-08-21
| | | | | | | | | Move direct validator, model, and Huey extension coverage into dedicated test modules and mock dependencies where behavior belongs to another module. Expand Huey extension typing and coverage while removing duplicate assertions from scanner, sender, form, and view tests.
* docs(core): add docstrings and type annotationsDennis Fink2026-08-20
| | | | | | | | Document forms, validators, models, and views with PEP 287-style docstrings and complete missing type annotations. Add developer-readable representations for Webmention models and mark the user password property as write-only in its return type.
* chore(core): standardize SPDX copyright headersDennis Fink2026-08-20
| | | | | | | | Add SPDX copyright and license headers to source, test, migration, template, and static files throughout the project. Include the maintainer email in copyright notices and fill in the BSD license copyright holder.
* refactor(core): improve typing and test coverageDennis Fink2026-08-19
| | | | | | | | | Restructure database and user CLI commands, make passwords write-only model properties, and use the UTC datetime constant throughout the application. Add PEP 287-style documentation and expand receiver, scanner, sender, and URL security tests to cover error paths and edge cases.
* feat(sender): add manual source rescan actionDennis Fink2026-08-17
| | | | | | | | Add an authenticated action to queue a source rescan from the sent Webmentions overview. Extract the reusable confirmation modal and its JavaScript so received and sent admin actions share the same implementation.
* feat(sender): improve sent webmention status displayDennis Fink2026-08-16
| | | | | | | Highlight source and Webmention rows based on their current state and use badges for clearer status and activity indicators. Make discovered endpoints and status URLs clickable in the detail view.
* refactor(core): remove user credential length limitsDennis Fink2026-08-16
| | | | | | | | Store usernames and password hashes as text instead of fixed-length strings so their maximum length is not constrained by the database schema. Require every user to have a password hash.
* feat(sender): add outgoing Webmention pipelineDennis Fink2026-08-15
| | | | | | | | | | | Scan generated h-entry documents for Webmention targets and track source revisions and delivery state in the database. Discover target endpoints, send Webmentions asynchronously, and reconcile updated, removed, restored, and deleted sources across scans. Add authenticated views for inspecting sent Webmentions and make the scanner schedule configurable.
* feat(core): add received webmention admin actionsDennis Fink2026-08-10
| | | | | | | | Add authenticated delete and reverify actions to the received webmentions admin view and protect them with CSRF validation. Enable CSRF protection globally while exempting the public Webmention endpoint.
* fix(receiver): prevent requests to non-public addressesDennis Fink2026-08-10
| | | | | | | | | Resolve source hostnames before fetching and reject addresses that are not globally routable to prevent SSRF against local or private services. Repeat the check for every HTTP request so redirects cannot bypass the initial source validation. Treat DNS resolution failures during verification as temporary fetch errors.
* Implement received Webmention handlingDennis Fink2026-08-09
| | | | | | | | | | | | Add the Flask application setup, database models and migrations, authentication, and configuration for development and testing. Implement asynchronous Webmention verification with Huey, including HTML and plain-text source validation, retries, status tracking, and size limits. Add status, login, and paginated received-Webmention views together with comprehensive tests for forms, views, and receiver tasks.
* Initialize repository for webmentions-ssgDennis Fink2026-06-24