Skip to content

GitHub Action set and get Cloudflare KV values

License

Notifications You must be signed in to change notification settings

zentered/cloudflare-kv-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Cloudflare KV Action

Test Release semantic-release: conventional Conventional Commits

Put and get values from Cloudflare KV.

Table of Contents

Usage

Copy your "Global API Key"

Cloudflare needs a little time to build the preview, you can check the average build time in your deployments and add the seconds plus a little to a sleep action, to wait until the deployment is ready. The action only works on branches, so make sure you exclude the main branch from the trigger:

on:
  push:
    branches:
      - '**'
      - '!main'

Here are the steps for an example job:

- run: sleep 30
- name: cloudflare-kv-action
  uses: zentered/[email protected]
  id: cloudflare_kv
  env:
    CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
    CLOUDFLARE_ACCOUNT_EMAIL: ${{ secrets.CLOUDFLARE_ACCOUNT_EMAIL }}
    CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
  with:
    namespace_identifier: '123'
    key_name: 'hello'
    value: 'world'
    expiration_ttl: 120
- name: Value
  run: echo "${{ steps.cloudflare_kv.outputs.value }}"

Environment Variables / Secret

In the repository, go to "Settings", then "Secrets" and add "CLOUDFLARE_API_TOKEN", the value you can retrieve on your Cloudflare account. You also need to add:

  • CLOUDFLARE_ACCOUNT_EMAIL (your login email, optional)
  • CLOUDFLARE_ACCOUNT_ID (from the URL: https://dash.cloudflare.com/123abc....)
  • CLOUDFLARE_API_KEY (from the URL: https://dash.cloudflare.com/profile/api-tokens)

Inputs

Name Requirement Description
namespace_identifier required Cloudflare namespace ID
key_name required KV key name
value optional Optional: Use "value" to set a key, otherwise it will be retrieved
expiration optional Optional: expiration
expiration_ttl optional Optional: If neither expiration nor expiration_ttl is specified, the key-value pair will never expire. If both are set, expiration_ttl is used and expiration is ignored.

Cloudflare API Reference

Outputs

Name Description
value KV value

Contributing

See CONTRIBUTING.

License

See LICENSE.