9 Workflows
Link
Show More
Places
-
new
{"info":"Link extracted from a Page, not yet resolved","description":"Link extracted from a Page, not yet resolved"}
-
resolved
{"info":"Final URL resolved (redirects followed). Landing here kicks off Article creation automatically.","description":"Final URL resolved (redirects followed). Landing here kicks off Article creation automatically.","next":["create_article"]}
-
article_exists
{"info":"The resolved final URL already has (or now has) a matching Article","description":"The resolved final URL already has (or now has) a matching Article"}
-
pending_fetch
{"info":"Queued for resolution (HEAD request \/ redirect-follow)","description":"Queued for resolution (HEAD request \/ redirect-follow)"}
-
error
{"info":"Resolution failed (bad status, cache check failure)","description":"Resolution failed (bad status, cache check failure)"}
Transitions
-
resolve
{"info":"HEAD request, follow redirects to the final URL","description":"HEAD request, follow redirects to the final URL","async":true}
-
create_article
{"info":"Create (or find) the Article for this Link's final URL","description":"Auto-dispatched via PLACE_RESOLVED's next: cascade -- not called directly elsewhere.","async":true}
-
delete_article
{"info":"Remove the Article this Link created (used to undo a bad create_article)","description":"Remove the Article this Link created (used to undo a bad create_article)","async":true}
-
error
{"info":"Resolve failed (non-2xx \/ exception)","description":"Resolve failed (non-2xx \/ exception)"}
-
_bad_cache_check
{"info":"Cached response for this URL is stale\/invalid","description":"Cached response for this URL is stale\/invalid"}
page
Show More
Places
-
new
{"info":"Page registered (app:add-page), not yet activated","description":"Page registered (app:add-page), not yet activated"}
-
active
{"info":"Scrapable. Can be scraped repeatedly (self-loop transition).","description":"Scrapable. Can be scraped repeatedly (self-loop transition)."}
-
inactive
{"info":"Not scraped -- disabled or failed activation","description":"Not scraped -- disabled or failed activation"}
Transitions
-
activate
{"info":"Activate a newly registered Page","description":"Activate a newly registered Page"}
-
scrape
{"info":"Extract headline Links from the Page and dispatch each for resolution","description":"Extract headline Links from the Page and dispatch each for resolution","async":true}
-
scrape_fail
{"info":"Scrape failed","description":"Scrape failed"}
project
Show More
Places
-
new
{"info":"Project created, not yet active","description":"Project created, not yet active"}
-
active
{"info":"Articles are being matched\/tagged against this Project","description":"Articles are being matched\/tagged against this Project"}
-
inactive
{"info":"Not currently matching articles","description":"Not currently matching articles"}
Transitions
-
activate
{"info":"Activate the Project","description":"Activate the Project"}
-
deactivate
{"info":"Deactivate the Project","description":"Deactivate the Project"}
ArticleWorkflow
Show More
Places
-
new
{"info":"Article row created, not yet fetched","description":"Article row created, not yet fetched"}
-
needs_review
{"info":"Fetched (or re-fetched); metadata awaiting confirm\/block. Landing here auto-checks for a failed fetch.","description":"Fetched (or re-fetched); metadata awaiting confirm\/block. Landing here auto-checks for a failed fetch.","next":["_fetch_fail"]}
-
fetch_failed
{"info":"Fetch failed with a non-200 status and no source date to salvage it","description":"Fetch failed with a non-200 status and no source date to salvage it"}
-
blocked
{"info":"Blocked from appearing (login pages, individually excluded urls, etc.)","description":"Blocked from appearing (login pages, individually excluded urls, etc.)"}
-
confirmed
{"info":"Metadata confirmed as publishable","description":"Metadata confirmed as publishable"}
Transitions
-
fetch
{"icon":"mdi:bookmark","info":"Fetch the _contents_ of the URL. Might be cached (RFC 9111 HTTP cache + ScrapeService dedup).","description":"Fetch the _contents_ of the URL. Might be cached (RFC 9111 HTTP cache + ScrapeService dedup).","async":true,"next":["extract_meta"]}
-
approve_meta
{"icon":"mdi:thumbs-up","info":"Confirm that the metadata is publishable","description":"Confirm that the metadata is publishable"}
-
extract_meta
{"icon":"mdi:sync","info":"Extract article metadata (headline\/summary\/etc) from the fetched content","description":"Auto-dispatched via TRANSITION_FETCH's next: cascade once it completes."}
-
_fetch_fail
{"info":"Fetch returned a non-200 status and we have no usable source date to fall back on","description":"Guarded, sync reaction to TRANSITION_FETCH -- triggered automatically via PLACE_NEEDS_REVIEW's next: cascade, not called directly."}
-
block
{"icon":"mdi:thumbs-up","info":"Block this article from appearing","description":"Block this article from appearing"}
suggestion
Show More
story
Show More
Places
-
new
{"temp":true}
-
exists
{"temp":true}
-
resolved
{"temp":true,"description":"HEAD call, finalUrl set"}
-
scrape_problem
{"temp":true,"bg_color":"red","description":"HEAD call, permission error, site dead "}
-
ignored
{"temp":true,"description":"low score so ignored"}
-
scorable
{"temp":true,"description":"Unique, mediaId set"}
-
fetchable
{"temp":true,"description":"Fetch Criteria Met"}
-
subsite
{"temp":true,"description":"Subsite"}
-
ready
{"icon":"fad fa-chalkboard-teacher","label":"Waiting for Editor","description":"Reviewing Story, Ready for Tagging and Approval\/Rejection"}
-
pending_meta
{"system":true,"label":"Waiting for Date\/Media","description":"GET call, has article"}
-
rejected
{"arrow_color":"red","description":"Story has been rejected (not important or relevant)"}
-
similar_story
{"description":"Too similar to existing story"}
-
posted
{"description":"Posted on Website"}
-
promoted
{"description":"Top Story on Website"}
Transitions
-
resolve
-
_bad_cache_check
{"arrow_color":"#0088FF","color":"red"}
-
_duplicate_url
-
has_media
-
_final_exists
{"label":"Mark Duplicate"}
-
low_fetch_score
-
high_fetch_score
-
create_story
{"label":"Persist Story, Create Article"}
-
_meta_approved
{"description":"Meta Data - date","summary,":"Article Meta Approved"}
-
tag
{"description":"Tag Story","class":"btn-primary"}
-
reset
{"class":"btn-primary","description":"Reset"}
-
post
{"class":"btn-primary","description":"Post on Web"}
-
promote
{"class":"btn-success","label":"Promote","description":"Promote on Web"}
-
reject
{"class":"btn-danger","label":"Not relevant"}
-
too_similar
{"class":"btn-secondary","label":"Too Similar"}
edition
Show More
Places
-
new
-
closed
-
archived
-
indexed
Transitions
media
Show More
Places
-
new
-
healthy
-
automated
-
probation
-
problem
-
not_news
-
active
Transitions
-
activate
-
automate
-
not_news_website
site
Show More
Places
-
new
-
scrape_requested
-
active
-
inactive
-
maintenance
-
dead
-
unauthorized
-
probation
Transitions
-
maintain
{"class":"bg-warning","icon":"fas fa-gear text-warning","description":"If basic fetch works, then start background fetching"}
-
deactivate
{"class":"bg-warning","icon":"fas fa-gear text-warning"}
-
request_scrape
{"class":"bg-warning","icon":"fas fa-download","description":"Background process will scrape the headlines"}
-
scrape_success
{"class":"bg-warning","icon":"fas fa-download","description":"Background process will scrape the headlines"}
-
scrape_fail
{"class":"bg-danger","icon":"fas fa-danger"}
-
bad_dns
{"class":"bg-danger","icon":"fas fa-danger"}
-
activate
-
bad_login
{"description":"Begin fetching headlines from this site"}
-
fix_credentials
{"description":"Fix the login problem"}
-
fetch_okay
{"description":"Starts working again (url fix, site up again, etc.)"}
-
repeated_failure
-
report_bad_fetch