Skip to main content

Sync Ends - End Development Overheads

Project description

Sync-Ends

MIT license GitHub Build Status
GitHub closed issues GitHub closed pull requests codecov
YouTube Video Views

Table of Contents

Overview

Sync-Ends is a productivity service, an automated bridge to sync service owners and service consumers that focuses on saving developer time by automatically notifying API consumers when a change is made in the API.

With more and more teams working autonomously and focusing on a microservice and API-driven culture, it is a hassle, for the API developers to keep notifying their consumers of API changes, and for the API consumers to keep track of these API changes and make required changes in their codebase.

Sync-Ends service addresses this problem by taking the hassle away from the API developers and consumers. The Sync-Ends service continuously monitors the API collection in Postman (being worked on by API developers) and every time an API changes in this collection, it notifies a slack channel (followed by the API consumers) with a diff of the change. This way, API developers don't need to manually post messages every time something changes in the service and API consumers are sure that they are utilising the latest API changes.

Take a look at this short video to understand the project idea better. Watch the video

Features

Feature Description
1-step service execution Simple 1-step CLI execution for Sync Ends service
API Change Notification Get notifications about changes made to the API in Postman along with detailed diff of changes
Track Postman collection Ability to track a Postman collection and get notifications
Slack Bot Subscription Set frequency of notifications as well as customize Slack channel for updates

Architecture Diagram

How to Setup

  1. Perform the steps described in the Prerequisites section.
  2. Install python 3.
  3. To install packages, run: pip install -r requirements.txt
  4. Create a config json file to be used by the Sync Ends service. Refer to the config file setup section for details.
  5. Run the service using: python src/main.py --config <config-file-path>

Config file Setup

The sync-ends service uses a configuration file to configure postman token, slack channels and other parameters required to run the service. The file format must be .json. Here's how the config file looks like:

{
    "postman_api_key": "<a>",
    "slack_token": "<b>",
    "trigger_interval": <c>,
    "collections": [
        {
            "collection_name": "<d>",
            "slack_channel": "<e>"
        }
    ]
}

where,

  • a: postman api key generated using steps shown in Postman Setup section.
  • b: slack token generated using steps shown in Slack Setup section.
  • c: [optional: default=10] time (in seconds), after which application will periodically check for api changes
  • d: collection name from postman collections
  • e: [optional: default="general"] slack channel in which notifications will be sent (must be a public channel)

Prerequisites

Step 1: Setup Postman

  1. Sign in to Postman.
  2. If you do not have any pre-exiting collections on Postman, import this sample collection.
  3. To integrate with the Sync Ends service, a Postman API key is required. Generate API key by visiting this page.
  4. Copy the generated API key. This is required during the time of execution of the service. Make sure you store it safely as you won't be able to view this any other time.

Step 2: Create a Slack workspace and integrate Slack bot

2a. Creating Slack workspace

  1. Open https://slack.com/.
  2. Provide your email ID. Select Create New workspace.
  3. Check your email and enter the code to verify your email.
  4. Provide your name and set a password.
  5. Add some details to your workspace in the next page.
  6. Provide a company name.
  7. Workspace URL should be unique. Also remember this URL, this is what is used to login to your Slack instance.
  8. Agree with the terms.
  9. Skip the invite step.
  10. You are up and running with your own instance of Slack.

2b. Creating Slack bot

  1. Open your <workspace-URL>/apps (the one you created above). For example, https://test-visual.slack.com/apps.
  2. Search for bot in the search bar and select Bots.
  3. In the Bots landing page, click on Add configuration.
  4. Provide a Bot name. For example, wolfpack-bot and click on Add Bot integration.
  5. In the Setup instruction page: Copy and store the API Token. For example, the token may look something like this: xoxb-22672546-n1X9APk3D0tfksr81NJj6VAM.
  6. Save the Bot integration.

Code Documentation

The documentation for the code classes and methods is generated using pdoc3. To view this documentation, clone the repo and navigate to docs/src/ and open index.html in a browser.

License

This project is licensed under the MIT License.

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

sync-ends-api-service-2.1.4.tar.gz (17.8 kB view details)

Uploaded Source

Built Distribution

sync_ends_api_service-2.1.4-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file sync-ends-api-service-2.1.4.tar.gz.

File metadata

  • Download URL: sync-ends-api-service-2.1.4.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for sync-ends-api-service-2.1.4.tar.gz
Algorithm Hash digest
SHA256 0a5854a30ce4baeecffeb6b7a2757420fde7d362323a99a3e4f676bb5107bb84
MD5 028c250f648476896eecb92ccc8ce0b5
BLAKE2b-256 424c82a2cc14ea17a72a76d2a90f5da562ed4beeb685f0c8f14fecaf725784e8

See more details on using hashes here.

File details

Details for the file sync_ends_api_service-2.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for sync_ends_api_service-2.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 67fbcb8392f32b5418308d9ea6c7e46a39f12e98dc5812b3d8bcb4548341f81e
MD5 fa78a3a88db05053184bb3c8acb5eddd
BLAKE2b-256 c5afd44c6b637bdfc98283ac4db236db55288b3328efebaa71b640d73c93abf9

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