
Bluesky BlueskyExecution
CertifiedPost execution summary to Bluesky
Bluesky BlueskyExecution
Post execution summary to Bluesky
Renders the bundled bluesky.peb template with execution details (id, namespace, link, status, timings) plus custom fields/message, then sends it to Bluesky via identifier and app password with a 300-grapheme cap.
type: io.kestra.plugin.bluesky.BlueskyExecutionExamples
Send a Bluesky notification on a failed flow execution.
id: failure_alert_bluesky
namespace: company.team
tasks:
- id: send_bluesky_alert
type: io.kestra.plugin.bluesky.BlueskyExecution
identifier: "myhandle.bsky.social"
appPassword: "{{ secret('BLUESKY_APP_PASSWORD') }}"
executionId: "{{ trigger.executionId ?? execution.id }}"
customMessage: "Production workflow failed - immediate attention required!"
customFields:
Environment: "Production"
Team: "DevOps"
Priority: "High"
triggers:
- id: failed_prod_workflows
type: io.kestra.plugin.core.trigger.Flow
conditions:
- type: io.kestra.plugin.core.condition.ExecutionStatus
in:
- FAILED
- WARNING
- type: io.kestra.plugin.core.condition.ExecutionNamespace
namespace: prod
prefix: true
Send a Bluesky notification on a successful flow execution.
id: success_alert_bluesky
namespace: company.team
tasks:
- id: send_bluesky_success
type: io.kestra.plugin.bluesky.BlueskyExecution
identifier: "myhandle.bsky.social"
appPassword: "{{ secret('BLUESKY_APP_PASSWORD') }}"
executionId: "{{ trigger.executionId ?? execution.id }}"
customMessage: "Deployment completed successfully!"
options:
readTimeout: PT5S
headers:
X-Datacenter: "eu-west-1"
triggers:
- id: successful_deployments
type: io.kestra.plugin.core.trigger.Flow
conditions:
- type: io.kestra.plugin.core.condition.ExecutionStatus
in:
- SUCCESS
Properties
appPassword *Requiredstring
App password
A Bluesky app password generated from Settings > Privacy and Security > App Passwords. Never use your main account password here.
identifier *Requiredstring
Bluesky identifier
Your Bluesky handle (e.g. myhandle.bsky.social) or email address used to authenticate.
baseUrl string
https://bsky.socialBase URL
The base URL of the Bluesky PDS (Personal Data Server). Defaults to https://bsky.social.
customFields object
Custom fields
Key-value pairs appended to the rendered template output
customMessage string
Custom message
Optional extra text appended to the template output
executionId string
{{ execution.id }}Execution ID
Execution to include in the template; defaults to the current execution and should be set to {{ trigger.executionId ?? execution.id }} when called from a Flow trigger
options
Options
The options to set to customize the HTTP client
io.kestra.plugin.bluesky.AbstractBlueskyConnection-RequestOptions
Connection timeout
Time allowed to establish a server connection before failing
PT0SConnection pool idle timeout
How long an idle connection stays in the pool before closure; defaults to 0s
UTF-8Default charset
Charset used for requests when none is specified; defaults to UTF-8
java.nio.charset.Charset
HTTP headers
HTTP headers to include in the request
10485760Max content length
Maximum response size in bytes; defaults to 10 MB
PT5MRead idle timeout
How long a read connection may stay idle before closing; defaults to 5 minutes
PT10SRead timeout
Max time allowed for reading data from the server before failing; defaults to 10s
pluginDefaultsRef Non-dynamicstring
Reference (ref) of the pluginDefaults to apply to this task.
templateRenderMap object
Template variables
Key-value map rendered and injected into the template before sending
textBody string
Post text body
Direct post text that bypasses the template; must fit within 300 graphemes