Skip to main content

An API Client for the Neon API.

Project description

neon_api: Python API wrapper for the Neon API.

neon_api is a Python wrapper designed to simplify interactions with the Neon API. It provides a convenient way for developers to integrate their Python applications with the Neon platform, offering methods to manage API keys, projects, branches, databases, endpoints, roles, and operations programmatically.

With neon_api, you can automate tasks, streamline workflows, and build powerful integrations with ease.

Installation

Installation of neon_api is easy, with pip:

$ pip install neon-api

Usage

from neon_api import NeonAPI

# Initialize the client.
neon = NeonAPI(api_key='your_api_key')

Documentation is available on ReadTheDocs.

Remember that you should never expose your api_key and handle it carefully since it gives access to sensitive data. It's better to set it as an environment variable (e.g. NEON_API_KEY + accompanying neon_api.from_environ()).


Methods of the NeonAPI class:

  • me(): Returns the current user.

Manage API keys:

  • api_keys(): Returns a list of API keys.
  • api_key_create(**json): Creates an API key.
  • api_key_delete(key_id): Deletes a given API key.

Manage projects:

  • projects(): Returns a list of projects.
  • project(project_id): Returns a specific project.
  • project_create(project_id, **json): Creates a new project.
  • project_update(project_id, **json): Updates a given project.
  • project_delete(project_id): Deletes a given project.
  • project_permissions(project_id): Returns a list of permissions for a given project.
  • project_permissions_grant(project_id, **json): Grant permissions to a given project.
  • project_permissions_revoke(project_id, **json): Revoke permissions from a given project.
  • connection_uri(project_id, database_name, role_name): Returns the connection string for a given project.

Manage branches:

  • branches(project_id): Returns a list of branches for a given project.
  • branch(project_id, branch_id): Returns a specific branch.
  • branch_create(project_id, **json): Creates a new branch.
  • branch_update(project_id, branch_id, **json): Updates a given branch.
  • branch_delete(project_id, branch_id): Deletes a given branch.
  • branch_set_as_primary(project_id, branch_id): Sets a given branch as primary.

Manage databases:

  • databases(project_id, branch_id): Returns a list of databases for a given project and branch.
  • database(project_id, branch_id, database_id): Returns a specific database.
  • database_create(project_id, branch_id, **json): Creates a new database.
  • database_update(project_id, branch_id, **json): Updates a given database.
  • database_delete(project_id, branch_id, database_id): Deletes a given database.

Manage endpoints:

  • endpoints(project_id, branch_id): Returns a list of endpoints for a given project and branch.
  • endpoint_create(project_id, branch_id, **json): Creates a new endpoint.
  • endpoint_update(project_id, branch_id, endpoint_id, **json): Updates a given endpoint.
  • endpoint_delete(project_id, branch_id, endpoint_id): Deletes a given endpoint.
  • endpoint_start(project_id, branch_id, endpoint_id): Starts a given endpoint.
  • endpoint_suspend(project_id, branch_id, endpoint_id): Suspends a given endpoint.

Manage roles:

  • roles(project_id, branch_id): Returns a list of roles for a given project and branch.
  • role(project_id, branch_id, role_name): Returns a specific role.
  • role_create(project_id, branch_id, role_name): Creates a new role.
  • role_delete(project_id, branch_id, role_name): Deletes a given role.
  • role_password_reveal(project_id, branch_id, role_name): Reveals the password for a given role.
  • role_password_reset(project_id, branch_id, role_name): Resets the password for a given role.

Manage operations:

  • operations(project_id): Returns a list of operations for a given project.
  • operation(project_id, operation_id): Returns a specific operation.

Experimental:

  • consumption(): Returns a list of project consumption metrics.

View the Neon API documentation for more information on the available endpoints and their parameters.

Development

First, create a virtual environment, then install the dependencies of the library with pip:

$ pip install -r requirements.txt

This will install all the necessary dependencies for development.

To run the tests, use the following command:

# set up a .env file with your API key as per `.env.example`
$ make test

The tests don't require an internet connection, as they are mocked using the pytest-vcr library. To record new cassettes, use the following command:

$ make record

This will record new cassettes for the tests. Make sure to commit these cassettes along with your changes.

License & Copyright

Apache 2.0 Licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neon_api-0.1.5.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

neon_api-0.1.5-py2.py3-none-any.whl (15.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file neon_api-0.1.5.tar.gz.

File metadata

  • Download URL: neon_api-0.1.5.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for neon_api-0.1.5.tar.gz
Algorithm Hash digest
SHA256 8c067b0cf9a79188f22325b0f4c4da77f4ea351a6464a4602a7e45df2222e613
MD5 051126ebb6e8ff944595b2f0f6c0f1db
BLAKE2b-256 f553789a58b0b3a872a5e90586b84c500058a4f2f8d7d14c56ded830b99d9954

See more details on using hashes here.

File details

Details for the file neon_api-0.1.5-py2.py3-none-any.whl.

File metadata

  • Download URL: neon_api-0.1.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for neon_api-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0df73367ca7e2dcfaef90889165b4fd402357c34b2554bb419995d4820b00f7b
MD5 4e130125cc3ba3b5ea8d88799e3bfaf3
BLAKE2b-256 06adaa9016d0464273e6fc17686a591a08c18cb97d02153c74b6f1f521076aa6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page