Bluesky BlueskyExecution

Bluesky BlueskyExecution

Certified

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.

yaml
type: io.kestra.plugin.bluesky.BlueskyExecution

Send a Bluesky notification on a failed flow execution.

yaml
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.

yaml
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

App password

A Bluesky app password generated from Settings > Privacy and Security > App Passwords. Never use your main account password here.

Bluesky identifier

Your Bluesky handle (e.g. myhandle.bsky.social) or email address used to authenticate.

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.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset 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.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
Defaulthttps://bsky.social

Base URL

The base URL of the Bluesky PDS (Personal Data Server). Defaults to https://bsky.social.

Custom fields

Key-value pairs appended to the rendered template output

Custom message

Optional extra text appended to the template output

Default{{ 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

The options to set to customize the HTTP client

Definitions
connectTimeoutstring

Connection timeout

Time allowed to establish a server connection before failing

connectionPoolIdleTimeoutstring
DefaultPT0S

Connection pool idle timeout

How long an idle connection stays in the pool before closure; defaults to 0s

defaultCharsetstring
DefaultUTF-8

Default charset

Charset used for requests when none is specified; defaults to UTF-8

headersobject

HTTP headers

HTTP headers to include in the request

maxContentLengthintegerstring
Default10485760

Max content length

Maximum response size in bytes; defaults to 10 MB

readIdleTimeoutstring
DefaultPT5M

Read idle timeout

How long a read connection may stay idle before closing; defaults to 5 minutes

readTimeoutstring
DefaultPT10S

Read timeout

Max time allowed for reading data from the server before failing; defaults to 10s

Template variables

Key-value map rendered and injected into the template before sending

Post text body

Direct post text that bypasses the template; must fit within 300 graphemes