All Projects β†’ Bearer β†’ Pizzly

Bearer / Pizzly

Licence: mit
The simplest, fastest way to integrate your app with an OAuth API πŸ˜‹

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Pizzly

Fosite
Extensible security first OAuth 2.0 and OpenID Connect SDK for Go.
Stars: ✭ 1,738 (+118.34%)
Mutual labels:  hacktoberfest, authentication, oauth2, oauth
Grant
OAuth Proxy
Stars: ✭ 3,509 (+340.83%)
Mutual labels:  authentication, oauth2, oauth
Graphql Starter
πŸ’₯ Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, Relay, and Material UI.
Stars: ✭ 3,377 (+324.25%)
Mutual labels:  api, postgresql, oauth
Service Proxy
API gateway for REST and SOAP written in Java.
Stars: ✭ 355 (-55.4%)
Mutual labels:  api, proxy, oauth2
Hubspot Php
HubSpot PHP API Client
Stars: ✭ 273 (-65.7%)
Mutual labels:  api, api-client, api-wrapper
Devise token auth
Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.
Stars: ✭ 3,263 (+309.92%)
Mutual labels:  api, authentication, oauth
Oauth
πŸ”— OAuth 2.0 implementation for various providers in one place.
Stars: ✭ 336 (-57.79%)
Mutual labels:  authentication, oauth2, oauth
Twitch4j
Modular Async/Sync/Reactive Twitch API Client / IRC Client
Stars: ✭ 209 (-73.74%)
Mutual labels:  api, api-client, oauth
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-49.87%)
Mutual labels:  api, oauth2, oauth
Retroauth
A library build on top of retrofit, for simple handling of authenticated requests
Stars: ✭ 405 (-49.12%)
Mutual labels:  authentication, oauth2, oauth
Product Is
Welcome to the WSO2 Identity Server source code! For info on working with the WSO2 Identity Server repository and contributing code, click the link below.
Stars: ✭ 435 (-45.35%)
Mutual labels:  hacktoberfest, authentication, oauth2
Php Curl Class
PHP Curl Class makes it easy to send HTTP requests and integrate with web APIs
Stars: ✭ 2,903 (+264.7%)
Mutual labels:  api, api-client, proxy
youtube-deno
A Deno client library of the YouTube Data API.
Stars: ✭ 30 (-96.23%)
Mutual labels:  oauth, oauth2, api-client
Annon.api
Configurable API gateway that acts as a reverse proxy with a plugin system.
Stars: ✭ 306 (-61.56%)
Mutual labels:  api, proxy, authentication
Chartbrew
Open-source web platform for creating charts out of different data sources (databases and APIs) πŸ“ˆπŸ“Š
Stars: ✭ 199 (-75%)
Mutual labels:  api, hacktoberfest, postgresql
React Aad
A React wrapper for Azure AD using the Microsoft Authentication Library (MSAL). The easiest way to integrate AzureAD with your React for authentication.
Stars: ✭ 324 (-59.3%)
Mutual labels:  authentication, oauth2, oauth
Angular Auth Oidc Client
npm package for OpenID Connect, OAuth Code Flow with PKCE, Refresh tokens, Implicit Flow
Stars: ✭ 577 (-27.51%)
Mutual labels:  hacktoberfest, authentication, oauth2
Virustotal Api
Virus Total Public/Private/Intel API
Stars: ✭ 189 (-76.26%)
Mutual labels:  api, api-client, api-wrapper
Binance
A .NET Standard Binance API library.
Stars: ✭ 199 (-75%)
Mutual labels:  api, api-client, api-wrapper
Memento
Memento is a development-only tool that caches HTTP calls once they have been executed.
Stars: ✭ 380 (-52.26%)
Mutual labels:  api, hacktoberfest, proxy

Deploy to Heroku Deploy with Platform.sh Sponsored by Bearer.sh

Pizzly 🐻 - The OAuth Integration Proxy

Pizzly makes it fast and reliable to build API integrations. It handles dozens of pre-configured APIs (including Salesforce, Slack, Google Sheets and many more) and lets you quickly add more APIs with a generic JSON configuration schema.

Using Pizzly your engineering team can focus on consuming APIs, in a standardized way that will grow as you grow.

How it works?

At the heart of Pizzly is a Node.js application that uses PostgreSQL as a database. Once deployed on your servers, each instance of Pizzly provides multiple tools to help developers with their API integrations, including:

  • a dashboard - to enable and configure APIs;
  • an auth service - to handle the OAuth-dance;
  • a proxy - to perform authenticated requests to an API;
  • a JS library - to connect a user and perform requests from your frontend;
  • and its own API - to programmatically do what you can do with the dashboard.

Integrate with many APIs, right from Pizzly's dashboard

Demo

A live demo of Pizzly is available right here. It's hosted on a free Heroku instance, so expect some latency. Beware also that it is a public version of Pizzly - do not save sensitive credentials on it.

Other live demo of Pizzly includes:

Getting started

Pizzly can be installed anywhere (AWS, Heroku, Platform.sh, etc.). Here's a quick guide:

  1. First, deploy your own instance of Pizzly by clicking a deploy button below:

    Heroku Platform.sh
    Deploy to Heroku Deploy with Platform.sh
  2. Once deployed, open your app. You will land on Pizzly's dashboard.

  3. Click on "Open Dashboard" and select the API you want to integrate with.

  4. Now, configure the API by entering your credentials and scopes. That's all it takes to configure a new API.

  5. To connect a user to this API, in your frontend, install pizzly-js:

    npm install pizzly-js
    
  6. Then open your frontend app and copy-paste the following code:

    import Pizzly from 'pizzly-js'
    
    const pizzly = new Pizzly({ host: 'pizzly.example.org' }) // Initialize Pizzly
    const myAPI = pizzly.integration('xxx-api-name') // Replace with the API slugname
    
    myAPI
      .connect()
      .then(({ authId }) => console.log('Sucessfully connected!', authId))
      .catch(console.error)
    

    This snippet code will open a popup in your browser to start an authorization flow with the provided API. On success you will obtain an authId which will be be used in the next step.

  7. In your frontend again, use the previously obtained authId to perform a request to the API using the code below:

    myAPI
      .auth('xxx-auth-id') // Replace with the authId previously obtained
      .get('/xxx-endpoint') // Replace with a valid endpoint of the API
      .then((response) => console.log(response))
      .catch(console.error)
    

    This example will perform a GET request to /endpoint of the API and will use the provided authId to authenticate the request.

Documentation

Guides, tutorials and references are all available on the Docs.

Examples

We have several examples in the docs with different APIs. Here is the first one to get you started:

const pizzly = new Pizzly({ host: 'pizzly.example.org' }) // Initialize Pizzly
const github = pizzly.integration('github')

github
  .connect() // Connect to GitHub
  .then(({ authId }) => console.log('Sucessfully connected! with the authId:', authId))
  .catch((error) => console.error('It failed!', error))

This example will trigger an OAuth dance to the GitHub API.

πŸ’‘ You'll notice that when a user is successfully connected, we received an authId; it's a power concept introduced by Pizzly. The authId acts as a reference to the OAuth payload (i.e. the access_token and refresh_token). While the access_token and refresh_token expire and/or change over time, the authId is always the same. Think of it as something like a user identity.

Supported APIs

Some pre-configured APIs with Pizzly

More than 50 APIs are preconfigured to work out-of-the-box. Including:

  • Communication: Gmail, Microsoft Teams, Slack, Zoom;
  • CRM: Front, Hubspot, Salesforce, etc.
  • Developer tools: BitBucket, GitHub, GitLab, etc.
  • Finance: Xero, Sellsy, Zoho Books, etc.
  • Productivity: Asana, Google Drive, Google Sheets, Jira, Trello, etc.
  • Social: Facebook, LinkedIn, Reddit, etc.
  • and more...

Each API consists of a JSON configuration file, stored within the /integrations directory. Here's an example with the GitHub configuration file (/integrations/github.json):

{
  "name": "GitHub",
  "auth": {
    "authorizationURL": "https://github.com/login/oauth/authorize",
    "tokenURL": "https://github.com/login/oauth/access_token",
    "authType": "OAUTH2",
    "tokenParams": {},
    "authorizationParams": {},
    "auth": { "accessType": "offline" }
  },
  "request": {
    "baseURL": "https://api.github.com/",
    "headers": {
      "Accept": "application/vnd.github.v3+json",
      "Authorization": "token ${auth.accessToken}",
      "User-Agent": "Pizzly"
    }
  }
}

And adding new APIs is straightforward. Just create a new configuration file within the /integrations folder of your Pizzly's instance. If you feel like sharing, you can even create a PR so that other developers will be able to use it as well!

Why Pizzly?

Pizzly originally started at Bearer.sh as a way to simplify the developer's journey and ease the building of API integrations. OAuth is a great framework, but the difficulty and wide range of implementation makes it painful to use and tends to slow down the ability to integrate with new APIs.

But seriously, why Pizzly? We're fan of bears and fell in love with this sweet hybrid one 🐻

Contributing

While Pizzly is actively backed by Bearer's engineering team, the main purpose of this repository is to continue to improve Pizzly, making it larger and easier to use. We are grateful to each contributors and encourage you to participate by reporting bugs, ask for improvements and propose changes to the code.

Covenant Code of Conduct

Pizzly has adopted the Contributor Covenant Code of Conduct (version 2.0), available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. We expect project participants to adhere to.

Contributing Guide

All work on Pizzly happens directly on GitHub. Both Bearer.sh team members and external contributors send pull requests which go through the same review process. Submit all changes directly to the master branch. We don’t use separate branches for development or for upcoming releases.

To report a bug or a feedback, use GitHub Issues. We keep a close eye on this and try to label each new request. If you're fixing a bug or working on a new feature, submit a pull request with detail on which changes you've made.

While there are no templates yet when opening a PR or an issue, we still recommend to provide as much detail as possible. Consider that someone external to the project should understand your request at first glance.

License

Pizzly is MIT licensed. See the LICENSE file for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].