Python client for the Cloudflare v4 API
Project description
cloudflare-api
Python client for Cloudflare API v4
Usage
Python Package
pip install cloudflare-api
Sample code can be found inside /test.py
Source Code
git clone https://github.com/nikhiljohn10/cloudflare-api
cd cloudflare-api
Instructions to get new API Token
- Go to Dashboard
- Create Token
- Use
Edit Cloudflare Workers
template - Select one account from Account Resources
- Select
All Zones
or specific zones under Zone Resources - Continue to summary
- Create Token
- Copy the token and save it somewhere secret & secure.
Create a secret.py
in the root directory with following content and replace API_TOKEN
's value with the token obtained from Cloudflare Dashboard:
API_TOKEN = "API_TOKEN"
Then run the following command in terminal:
make test
Note: The
secret.py
file is ignored by git
Example
For this example, poetry
is used for easy setup.
python3 -m pip install poetry
poetry new cloudflare-app
cd cloudflare-app
poetry add cloudflare-api
Copy the code below in to a new file ./cloudflare-app/__main__.py
.
#!/usr/bin/env python3
from CloudflareAPI import Cloudflare
def main():
cf = Cloudflare("API_TOKEN")
print(cf.account.list())
print(cf.user.details())
print(cf.worker.list())
print(cf.store.list())
if __name__ == "__main__":
main()
Now replace API_TOKEN
values with values obtained from Cloudflare Dashboard. You can now run the program using following command:
poetry run python cloudflare-app
Default Permissions
1. Account
- Workers Tail ( Read )
- Workers KV Storage ( Edit )
- Workers Scripts ( Edit )
- Account Settings ( Read )
2. Zones
- Workers Routes ( Edit )
3. Users
- User Details ( Read )
Available endpoints
Account
list
- List all accounts where given token have accessget_id
- Return account id if only one account exists. Otherwise display all accounts availabe and exit.details
- Display details of an accountrename
* - Rename an existing account
User
details
- Display details of the account's user
Worker
-
list
- List all existing workers -
upload
- Upload a new worker with binding if given- Upload file along as javascript
- Upload file along with metadata as multipart form-data
- KV Bindings
- Environment variables
- Secrets
-
download
- Download an existing worker -
deploy
- Deploy an existing worker using the subdomain -
undeploy
- Undeploy an existing worker -
delete
- Delete an existing workerSubdomain
create
- Create a new subdomain if none existsget
- Get the current subdomain from cloudflare account
Cron
update
- Update an existing cron or create new cron for a workerget
- Get the cron task list of specified worker
Store(Workers KV)
list
- List all existing Namespacesget_id
- Find the namespace id of the namespacecreate
- Create a new namespacerename
- Rename an existing namespacedelete
- Delete an existing namespace
( * : Not accessable with default Worker Token )
Development
Version Bump
To display current version:
make version
To bump to new version, where x.y.z is major,minor & patch versions respectively:
make VERSION=x.y.z bump
The above command does the following:
- Update version in
__version__.py
inside package - Create a commit for the above change
- Tag the commit with VERSION
- Push the content in to main branch with tags
- Python publish workflow action activates
- Release the version pushed
- Build python package
- Publish python package in to pypi.org
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cloudflare_api-1.3.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 390119f458ad86ff8d8ff9688b2ef18ddad43f9c3e5c9073ffdb0a3aeed47f53 |
|
MD5 | 255ee1a0157ef132a089c0a28e6e3a47 |
|
BLAKE2b-256 | c693959c6da74ebc77ac335a1e2f081f5edaf6693e844a18211f2bc251e539b3 |