add dead link monitoring for outgoing content links
All checks were successful
deploy / deploy (push) Successful in 3m42s
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:
20
priv/repo/migrations/20260301100229_create_dead_links.exs
Normal file
20
priv/repo/migrations/20260301100229_create_dead_links.exs
Normal 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
|
||||
Reference in New Issue
Block a user