LLL Scheduled Unpublish / 記事の予約公開終了
Schedule one saved published entry to return to draft, with version guards and a scheduler probe. 保存公開記事の期限終了。
@mrhandsome39.bsky.social/scheduled-unpublishOr 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
What does this do? It returns one published article to draft at a confirmed server UTC deadline. Native scheduling publishes; this job ends publication. One active target/reservation, not a deadline-only list.
Does cron presence prove readiness? No. An automatic one-shot probe must reach this plugin hook, with a receipt no older than5minutes. This proves recent delivery, not future uptime. Unsupported/no-op hosts cannot arm without that receipt.
What if content changes? Changed revision/identity/locale/status/scheduled publication is skipped. A final SDK revision guard blocks a racing update. It never substitutes the latest version.
Can I cancel? Before claim, cancellation wins by CAS. After claim cancellation cannot be promised. KV/cron/publication are not one transaction. There is no automatic republishing.
What is unknown? A write or receipt was not confirmed or an operation stopped. A current draft is not proof of past success. Observe target/task, then explicitly close unknown without a success claim. See README for recovery details.
What is stored? Two plugin KV keys: bounded probe and reservation/receipt. No article body, SEO, actor email, credentials or history. item.data processing≤256KiB after SDK retrieval, ID≤128ASCII, opaque revision≤2048B. Display labels abbreviate; confirmation identity/revision does not.
Timing and host? Exact UTC YYYY-MM-DDTHH:mm:ssZ,30seconds–366days ahead. Long-lived single-process Node initial support; no Cloudflare/cluster/scale-to-zero guarantee. Normal acceptance≤90seconds after due, not an exact deadline or emergency/legal guarantee. Cache/mirrors may retain old content.
日本語: probe登録と実到達、previewと予約済み、正規receiptと読取時点のdraftを分けます。unknownは成功ではなく、必要なら確認後に明示終了してください。
Security
Private admin POST requires plugins:manage and normal host CSRF. There is no public plugin route. Requested grants: content:read/schema:read/content:publish. The publication grant can also publish/schedule; code calls only version-guarded unpublish of the confirmed target. No content:write, revision-history reading, user directory, media, email, network, AI, analytics or billing service.
Two fixed plugin-scoped KV keys persist bounded probe/reservation/receipt state. Cron task names include unpredictable tokens. Probe and reservation use CAS; old or duplicate tasks cannot act on another reservation. Single-key CAS is atomic; KV, cron registration and publication are not one transaction. A missing receipt is never manufactured from a later draft. Private content returned by the SDK is not logged, saved or sent externally; only bounded title labels/identity/version/status are displayed to authorized administrators.
Input/body limits are enforced, displayed titles are plain text and visibly abbreviated, and stored done requires a matching updated success receipt. Explicit reservation/Cancel/unknown-close actions and host permissions govern writes. Tests use owned synthetic articles only. Normal host/infrastructure logging has its own policy. Report vulnerabilities to contact@lx3.cafe with synthetic/redacted steps, never credentials or private article content. No SLA, legal compliance or exact timing guarantee.
Changelog
0.1.0 — One version-bound automatic unpublish reservation, actual scheduler probe, immutable confirmation, cancellation before claim, task observations, guarded receipt/unknown handling, English/Japanese private admin and saved-article batching. Long-lived single-process Node initial support. No external services or automatic platform setup.
Installation
Requires EmDash1.4, a supported sandbox runner and a long-lived single-process Node host. Cloudflare, clustered and scale-to-zero hosts are unsupported in this initial release. No new platform cron setup is performed by installation.
Install from the official Registry when published. Review content:read, schema:read and the powerful content:publish grant, plugin KV persistence and cron hook. The implementation only unpublishes an explicitly confirmed target; the grant can technically publish/schedule too.
Open Scheduled Unpublish. Click Check automatic scheduler, then Refresh until an actual hook receipt is observed. Registration alone is not readiness. The receipt must be no older than5minutes. Choose a collection and saved published article; browse20-entry batches as needed. Next/First removes the form; Open batch mounts the new one. Enter exact UTC,30seconds to366days ahead. Review complete target/version/deadline, then Confirm. Preview is not a reservation.
Cancel only before execution claims the job. Later article edits, locale/status changes or future-publish scheduling cause a skip. The plugin never swaps in a newer version. Refresh/reconcile shows actual task presence and the current target; unknown is not success. Read the full README for failures, restart and explicit unknown closure.
After due, check the recorded receipt, native draft with preserved body and anonymous visitor URL. Normal Node acceptance allows90seconds after due; exact timing, uptime and remote cache removal are not guaranteed. Not for emergency/legal/safety deadlines.
記事を選び、UTCとversionを確認して明示予約します。保存編集後はskipし、最新版へ自動適用しません。Refresh後は別操作でformを開き直します。無料で1予約・1対象の予約/取消/実公開終了/結果確認まで完結します。
Keep exploring
More plugins like LLL Scheduled Unpublish / 記事の予約公開終了
Browse by keyword, or see everything @mrhandsome39.bsky.social publishes.