LLL URL Migration Audit
Preview stored absolute URL changes before a domain or path migration. Read-only, with English/Japanese reports and CSV text export.
@mrhandsome39.bsky.social/url-migration-auditOr open Registry in your EmDash admin and search for this name.
Permissions
Plugins get only the capabilities they declare and you approve. Your EmDash admin lists these again before anything installs.
FAQ
FAQ
Version 0.1.2.
Is it free? Audit, manual batches and CSV are free. No external key or paid contract is needed. No paid edition/add-ons are currently sold. Host/runner charges are separate.
Where do I install it? Prepare the official sandbox runner (Node/workerd or supported Cloudflare paid Worker Loader). Use EmDash Registry: LLL URL Migration Audit or @mrhandsome39.bsky.social/url-migration-audit. Check publisher, signature and the two read capabilities.
Why are articles skipped? Set the public URL in EmDash site settings; separately check Astro site/routes and collection public URLs for getPublicUrl. Astro site alone is insufficient. Non-published entries and unresolved public URLs are skipped. If site setup changed after startup, check configuration and restart the dedicated runner. Public noindex entries are included. Custom theme access protection cannot be inferred; exclude those collections.
What is checked? Absolute HTTP(S) links in top-level URL fields and used standard Portable Text link marks. Relative/protocol-relative/query-only/fragment-only links, arbitrary text, HTML, nested fields, tables/custom blocks and unused marks are excluded. Origin/path boundaries match exactly; query/fragment are kept. Destinations are not fetched. No content, SEO or redirect writes.
What are the limits? Five articles/batch; 1,000/scan; 500 rows; state512KiB; target JSON128KiB/1,000 links per article; final quoted/formula-protected UTF-8 CSV48KiB. Caps produce partial results. Zero matches is not an all-clear; rerun after edits.
CSV and privacy? Show CSV, copy all text and save UTF-8 .csv. No download button. Formula-like cells get an apostrophe. One report/user; logically expires at24h. State is deleted on next read or Clear, not by background cleanup. No outbound requests/telemetry. Protect copied CSV. Support/security: contact@lx3.cafe; include version and redacted steps, never secrets.
Security
Security and data handling
Version 0.1.2 · 2026-11-05 · LLL Inc. This document describes the security boundary, not a compliance certification.
Only content:read and schema:read are requested. Admin access requires permission to manage plugins. No public report endpoint, content/SEO/redirect writes, outbound HTTP, telemetry, email, cron, external keys or paid service are included. Links are not fetched. The plugin does not send reports to LLL.
Plugin KV stores scan/report state: article identifiers, locale/title, field path, original/suggested URLs and timestamps. URLs may contain sensitive query values. Do not enter credentials/tokens. Protect manually copied CSV and Clear reports after use.
Storage policy: one report/authenticated user; logical expiry 24 hours after Start. State is deleted on next read or Clear; no background cleanup. Separate caps: state 512 KiB, 1,000 articles, 500 rows, target-field JSON 128 KiB and 1,000 links/article; final quoted/formula-protected UTF-8 CSV 48 KiB. Five articles/manual batch. Caps cause partial results.
Unsafe/ambiguous URLs receive no suggestions. Output uses text/table/code blocks. CSV quotes values and prefixes potential formulas with an apostrophe; inspect imports. CMS publication status cannot identify theme-specific protection. Exclude custom-protected collections.
Report vulnerabilities to contact@lx3.cafe with version, expected/observed behavior and a minimal redacted reproduction. Never send passwords, tokens, full exports or sensitive live URLs; agree a secure evidence channel first. No response-time commitment or bug bounty is offered. Full details: README.
Changelog
Changelog
0.1.2
2026-11-05. Fix Previous/Next controls when moving between report pages. All read-only comparison/audit behavior and capabilities remain unchanged.
0.1.1
Distribution metadata correction; runtime unchanged.
- Corrects repository metadata inferred by the publishing tool.
- Runtime code and requested capabilities are unchanged from 0.1.0.
- Updates version labels in documentation.
0.1.0
Initial version, 2026-11-05.
- Origin and path-prefix migration suggestions for supported saved absolute HTTP(S) links.
- Published-entry audit using top-level URL fields and used standard Portable Text link marks, including public
noindexentries. - Article/field context, manual scan batches and CSV text for manual copy/save.
- English and Japanese admin UI; read-only content/schema capabilities.
Installation
Installation and use
Version 0.1.2. EmDash 1.4.0 was tested; other versions are unvalidated. Registry plugins require the official sandbox runner: Node/workerd or a supported Cloudflare paid Worker Loader. Prepare that host setup first; hosting charges are separate.
Set the public URL in EmDash site settings. Separately check Astro site/routes and collection public URLs; Astro site alone does not set EmDash's URL. The audit depends on getPublicUrl; unresolved URLs are skipped. If setup changed after startup and all entries skip, check those settings and restart the dedicated runner.
In EmDash Registry, find LLL URL Migration Audit or @mrhandsome39.bsky.social/url-migration-audit. Check publisher, signature and only content:read/schema:read, then install as an admin and open URL Migration Audit.
Choose English/Japanese and one collection; exclude custom-protected collections. Enter different absolute HTTP(S) old/new roots with optional path prefixes, without credentials/query/fragment. Start, then Continue in five-article batches. Review original/suggested URLs, article/field and warnings; verify destinations separately.
Published entries including public noindex are checked. Only top-level URL fields and used standard Portable Text links; relative links are unsupported. No content/SEO/redirect changes or HTTP checks.
Show CSV, copy all text, save UTF-8 .csv manually. No one-click download. Caps: 1,000 articles, 500 rows, state512KiB, target JSON128KiB/1,000 links per article, final quoted/formula-protected CSV48KiB. Caps yield partial results. One report/user; logically expires at24h. Stored state is deleted on next read or Clear, with no background cleanup. Protect copied files.
Audit and CSV are free; no API key or paid contract needed. No paid edition/add-ons are currently sold. Details: README. Support/security: contact@lx3.cafe; send redacted reproduction only.
Keep exploring
More plugins like LLL URL Migration Audit
Browse by keyword, or see everything @mrhandsome39.bsky.social publishes.