
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 *string
App password
A Bluesky app password generated from Settings > Privacy and Security > App Passwords. Never use your main account password here.
identifier *string
Bluesky identifier
Your Bluesky handle (e.g. myhandle.bsky.social) or email address used to authenticate.
assets
Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.
io.kestra.core.models.assets.AssetsDeclaration
IGNOREFAILWARNAsset failure behavior
Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.
Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.
The assets consumed as inputs.
io.kestra.core.models.assets.AssetIdentifier
1The assets produced as outputs.
io.kestra.plugin.ee.assets.Dataset
1150{}1150io.kestra.plugin.ee.assets.File
1150{}1150io.kestra.plugin.ee.assets.Table
1150{}1150io.kestra.plugin.ee.assets.VM
1150{}1150io.kestra.core.models.assets.External
1150{}1150io.kestra.core.models.assets.Custom
11501Custom asset type
{}1150baseUrl 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
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