add dead link monitoring for outgoing content links
All checks were successful
deploy / deploy (push) Successful in 3m42s

Scans page blocks and nav items for broken URLs (internal via DB
lookup, external via HTTP HEAD). Daily Oban cron at 03:30, plus
on-demand checks when pages are saved. Admin UI tab on redirects
page with re-check, ignore, and clickable source links.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-01 13:00:59 +00:00
parent 3480b326a9
commit b235219aee
11 changed files with 1109 additions and 2 deletions

View File

@@ -0,0 +1,20 @@
defmodule Berrypod.Repo.Migrations.CreateDeadLinks do
use Ecto.Migration
def change do
create table(:dead_links, primary_key: false) do
add :id, :binary_id, primary_key: true
add :url, :string, null: false
add :url_type, :string, null: false, default: "external"
add :status, :string, null: false, default: "broken"
add :http_status, :integer
add :error, :string
add :last_checked_at, :utc_datetime, null: false
timestamps()
end
create unique_index(:dead_links, [:url])
create index(:dead_links, [:status])
end
end