An open API service indexing awesome lists of open source software.

https://github.com/xjonathanlei/cf-pages-cli

A simple command line utility for managing Cloudflare Pages projects
https://github.com/xjonathanlei/cf-pages-cli

cloudflare cloudflare-pages

Last synced: 7 months ago
JSON representation

A simple command line utility for managing Cloudflare Pages projects

Awesome Lists containing this project

README

          


cf-pages-cli

**Command line utility for managing Cloudflare Pages projects**

[![crates-badge](https://img.shields.io/crates/v/cf-pages-cli.svg)](https://crates.io/crates/cf-pages-cli)

## What is `cf-pages-cli`

`cf-pages-cli` is a line utility for managing [Cloudflare Pages](https://pages.cloudflare.com/) projects. Currently, its only capability is managing environment variables, which is useful in CI/CD workflows to synchronize projects with variables stored in Git.

## Installation

With `cargo` installed, install from crates.io:

```console
cargo install --locked --version 0.2.1 cf-pages-cli
```

## Usage

### Synchronize variables

First, make sure you have your Cloudflare account ID, as well as a valid Cloudflare API token (with the `Cloudflare Pages:Edit` permission). Export them as environment variables:

```console
$ export CLOUDFLARE_ACCOUNT="YOUR_ACCOUNT_ID"
$ export CLOUDFLARE_TOKEN="YOUR_API_TOKEN"
```

_(It's also possible to use them as command line options via `--account` and `--token`, respectively, but it's easier to just export them as they're used in many commands.)_

By default, the command exports the latest settings for both the production and preview environments. You can also export the variables from a specific deployment by adding a `--deployment DEPLOYMENT_ID` option. Note that since each deployment only targets one environment, the other environment will be left as `null` in the resulting JSON file.

Then, export the environment variables of your project:

```console
$ cf-pages get-env-vars --project YOUR_PROJECT_NAME --output ./vars.json
Environment variables written to: ./vars.json
```

_(It's also possible to set the project name and file path via the `CF_PAGES_PROJECT` and `CF_PAGES_OUTPUT` environment variables, respectively.)_

You can also print the generated file content to stdout by omitting the `--output` option.

Now, make changes to the `vars.json` file, and upload to Cloudflare:

```console
$ cf-pages set-env-vars --project YOUR_PROJECT_NAME --file ./vars.json
Environment variables successfully updated
```

### Generate `.env` files

The `vars.json` file exported with the `get-env-vars` can also be used to generate `.env` files, which are useful for front-end development:

```console
$ cf-pages to-env-file --output ./.env ./vars.json
Environment variables written to: ./.env
```

You can also print the generated file content to stdout by omitting the `--output` option.

By default, environment variables for the production environment are exported. To export the preview environment instead, add the `--environment preview` option.

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE](./LICENSE-APACHE) or )
- MIT license ([LICENSE-MIT](./LICENSE-MIT) or )

at your option.