Skip to content

feat: add Latchshot page capture blueprint - #259

Open
BaiqingL wants to merge 1 commit into
kestra-io:mainfrom
BaiqingL:add-latchshot-blueprint
Open

feat: add Latchshot page capture blueprint#259
BaiqingL wants to merge 1 commit into
kestra-io:mainfrom
BaiqingL:add-latchshot-blueprint

Conversation

@BaiqingL

Copy link
Copy Markdown

Summary

  • add a typed blueprint that renders a public page as PNG, JPEG, or PDF through Latchshot
  • stream the binary response directly into Kestra internal storage with io.kestra.plugin.core.http.Download
  • expose the stored artifact as a flow-level FILE output
  • document the exact secret, inputs, outputs, storage boundary, restrictions, and API links

I maintain Latchshot and am contributing this blueprint directly. Latchshot is not affiliated with Kestra.

Safety and data boundaries

  • public HTTP/HTTPS pages only; private, loopback, credential-bearing, and non-web-port targets are rejected
  • no cookies, page credentials, injected scripts, or payment actions
  • the response is direct binary data, not a temporary third-party URL; Kestra owns artifact retention after download
  • the linked Free-key request does not start a paid plan

Validation

  • Kestra 1.3.28 native flow validation: passed with no warnings after removing only the catalog-specific extend block
  • bounded live Kestra execution: SUCCESS, HTTP 200 image/png, 16,323 bytes, valid PNG signature, stored and downloaded from a kestra:/// URI
  • SHA-256 of the stored runtime artifact: 62dd2b7f0cb8469b892d8d6f7b1cbbbea3befc989d7e96f84ce5d956fafc9de6
  • repository tag validator equivalent: all 483 flows parsed and passed allowed-tag/count rules
  • Prettier, YAML parsing, metadata/filename checks, secret scan, and git diff --check: passed
  • the one-render .invalid QA credential was revoked immediately; the run is not customer or revenue evidence

Checklist

  • id matches the hyphen-case filename and namespace is set
  • task is fully defined and described
  • extend includes title, rich description, <=160-character meta description, tags, ee, and demo
  • prerequisites, secret purpose, inputs, outputs, pitfalls, and links are documented
  • no hardcoded credential; the flow uses secret("LATCHSHOT_API_KEY")

@MilosPaunovic MilosPaunovic added the kind/external Pull requests raised by community contributors label Jul 21, 2026
@github-project-automation github-project-automation Bot moved this to To review in Pull Requests Jul 21, 2026
@MilosPaunovic MilosPaunovic added the area/docs Issues related to documentation, plugin examples, blueprints, and guides label Jul 21, 2026
@MilosPaunovic

Copy link
Copy Markdown
Member

Hey @wrussell1999 @aj-emerich could you give this a look once you get a chance please?

@MilosPaunovic
MilosPaunovic requested a review from MartinRst July 28, 2026 07:16

@wrussell1999 wrussell1999 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like what this flow does however for an ideal blueprint, it should contain multiple tasks.

Can you extend the usage here so there's tasks downstream that do something with this image? Maybe something that could pass it to an LLM to describe it and then send the result to you via email or another platform? Open to your suggestions though!

I tested it and it works.
Screenshot 2026-07-28 at 09 37 44

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Issues related to documentation, plugin examples, blueprints, and guides kind/external Pull requests raised by community contributors

Projects

Status: To review

Development

Successfully merging this pull request may close these issues.

3 participants