/treblle-dynasty

Treblle Dynasty: Your gateway to seamless Treblle integration. Build, monitor, and secure REST APIs with ease using our Python SDK.

Primary LanguagePythonMIT LicenseMIT

Treblle

Integrations   •   Website   •   Docs   •   Blog   •   Twitter   •   Discord


FastAPI for Treblle

image

Treblle is a lightweight SDK that helps Engineering and Product teams build, ship & maintain REST based APIs faster.

Features




How Treblle Works

Once you’ve integrated a Treblle SDK in your codebase, this SDK will send requests and response data to your Treblle Dashboard.

In your Treblle Dashboard you get to see real-time requests to your API, auto-generated API docs, API analytics like how fast the response was for an endpoint, the load size of the response, etc.

Treblle also uses the requests sent to your Dashboard to calculate your API score which is a quality score that’s calculated based on the performance, quality, and security best practices for your API.

Visit https://docs.treblle.com for the complete documentation.

Security

Masking fields

Masking fields ensure certain sensitive data are removed before being sent to Treblle.

To make sure masking is done before any data leaves your server we built it into all our SDKs.

This means data masking is super fast and happens on a programming level before the API request is sent to Treblle. You can customize exactly which fields are masked when you’re integrating the SDK.

Visit the Masked fields section of the docs for the complete documentation.

Get Started

  1. Sign in to Treblle.
  2. Create a Treblle project.
  3. Setup the SDK for your platform.

Install the SDK

You can install Treblle for FastAPI, by following the commands below.

pip install trenasty

Configuration

Once you have installed the Treblle SDK for FastAPI, you will need to configure it in your app. This can be done by creating a .env file and adding the following variables:

TREBLLE_API_KEY = ''
TREBLLE_PROJECT_ID = ''
TIME_ZONE = ''
TREBLLE_SENSITIVE_KEYS = []
#[id, email]
  • TREBLLE_API_KEY: Your Treblle API key, which you can obtain by signing in to your Treblle account.
  • TREBLLE_PROJECT_ID: Your Treblle project ID.
  • TIME_ZONE: The time zone setting for your application.
  • TREBLLE_SENSITIVE_KEYS: A list of keys that should be masked in your logs, such as id, access_token, email, or any other sensitive information you want to keep secure.

Once you have created the .env file, you can initialize the Treblle middleware in your FastAPI app

Initialization

This is the step to initialize the middleware in your FastAPI app.

Importing FastAPI in Treblle Middleware

from fastapi import FastAPI
from trenasty.middleware.treblle import TreblleMiddleware

Instantiating the App and the Middleware

app = FastAPI()

app.middleware("http")(TreblleMiddleware(app))

Authentication and Access

Authentication in Treblle usually involves securing your API key and project ID. You should never expose these keys directly in your codebase. Instead, store them in environment variables (as shown above) and load them in your application securely.

Access control in Treblle is typically managed through your Treblle account and project settings. You can define who has access to your project within the Treblle dashboard. Be cautious about sharing your API key, and only grant access to trusted team members.

Treblle supports a variety of authentication and authorization mechanisms. You can choose the one that best suits your needs.

  • API Keys You can use API keys to authenticate users with Treblle. To do this, you will need to generate an API key for each user. You can then add the API key to the Authorization header of each request.

  • OAuth 2.0 You can also use OAuth 2.0 to authenticate users with Treblle. To do this, you will need to create an OAuth 2.0 client in Treblle. You can then use the client ID and secret to obtain an access token for each user. You can then add the access token to the Authorization header of each request.

  • Custom Authentication You can also implement your own authentication mechanism for Treblle. To do this, you will need to create a custom authentication middleware. You can then use the middleware to authenticate users before they can access your app's resources.

Error handling and Logging

Treblle provides a unified error-handling system. This means that you can handle all of your app's errors in one place. This can make it easier to debug and fix errors.

Treblle also provides a number of features to help you to handle errors more effectively and it's seamless with the integration of the SDK, such as:

  1. Error Handling Treblle's error handling works in the following ways:
  • Error grouping: Treblle can group similar errors together. This can help you to identify and fix the root cause of errors more quickly.

  • Alerting: Treblle can send alerts when errors occur. This can help you to stay informed of the health of your app.

  • Error tracking: Treblle can track errors over time. This can help you to identify trends and patterns in errors.

  1. Exception handling Treblle can help you to handle exceptions more effectively. This can make your app more robust and resilient to errors. Treblle provides a number of features to help you to handle exceptions more effectively, such as:
  • Exception logging: Treblle can log exceptions in a structured format. This can help you to debug and fix exceptions more quickly.
  • Exception retrying: Treblle can retry failed requests automatically. This can help to improve the reliability of your app.
  • Exception routing: Treblle can route exceptions to specific handlers. This can help you to handle different types of exceptions in different ways.
  1. Logging Treblle provides a unified logging system. This means that you can log all of your app's logs in one place. This can make it easier to debug and troubleshoot problems.

Treblle also provides a number of features to help you to log more effectively, such as:

  • Log filtering: Treblle can filter logs by severity, level, and other criteria. This can help you to focus on the logs that are most important to you.
  • Log aggregation: Treblle can aggregate logs from multiple sources into a single view. This can help you to get a holistic view of your app's logs.
  • Log forwarding: Treblle can forward logs to third-party logging systems. This can help you to centralized your logging and make it easier to analyze your logs.

Other Available SDKs

Treblle provides open-source SDKs that let you seamlessly integrate Treblle with your REST-based APIs.

See the docs for more on SDKs and Integrations.

Other Packages

Besides the SDKs, we also provide helpers and configuration used for SDK development. If you're thinking about contributing to or creating a SDK, have a look at the resources below:

  • treblle-utils: A set of helpers and utility functions useful for the JavaScript SDKs.
  • php-utils: A set of helpers and utility functions useful for the PHP SDKs.

Community 💙

First and foremost: Star and watch this repository to stay up-to-date.

Also, follow our Blog, and on Twitter.

You can chat with the team and other members on Discord and follow our tutorials and other video material at YouTube.

Treblle Discord

Treblle YouTube

Treblle on Twitter

How to contribute

Here are some ways of contributing to making Treblle better:

  • Try out Treblle, and let us know ways to make Treblle better for you. Let us know here on Discord.
  • Join our Discord and connect with other members to share and learn from.
  • Send a pull request to any of our open source repositories on Github. Check the contribution guide on the repo you want to contribute to for more details about how to contribute. We're looking forward to your contribution!

Contributors

A table of avatars from the project's contributors