0.0.3 • Published 8 months ago

@nk-gears/pucc-cli v0.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
8 months ago

PUCC Cli (WIP)

Power Up (your) Custom Connector - CLI

Makes Custom Connector Authoring a Joyful one via Cli - Targetted for Power Automate - Custom Connectors

Why this ?

Authoring and Publishing OpenAPI are not that much Complex when working few REST API Paths. But as the api grows large, this has been a cumbersome in managing everything in one single file.

This issue already addressed by multipe tools, openapi-cli, redoc-cli (redocly). Then even support to split an existing file and bundle them again to a single openapi yaml/json file.

But all these tools focus on Swagger 3.0. At this time of writing, they don't support 2.0. Currently Custom Connectors in Power Automate supports Swagger 2.0 only

What does it do ?

  • Easily Author OpenAPI by keeping the file separate across different folders for each resource operations/actions
  • Definitions, Parameters are kept separately.

Features in v1.0

  • Create a New Custom Connector Files (supports remote creation as well)
  • Split a OpenAPI file to a folder
  • Build a OpenAPI file from a Individual files
  • Validate the file using Validation
  • Deploy the connector to the Power Automate Platform.
  • Add a Policy Template to an Action
  • Add a New Action with Interactive user Prompts
  • Add a New Trigger
  • Add a Connection
  • Add a Policy
  • Add a Capability
  • Convert a Clipboard JSON Content to Pastable Schema

Features in Roadmap

  • Support to Split Large Connection Operations to Separate Groups
  • Support CI/CD Workflow for deploying the connector to specific environment
  • Supports Versioning

Work in Progress

  • pucc create
  • pucc split
  • pucc build
  • pucc validate
  • pucc deploy
  • pucc add-policy
  • pucc add-action
    • method : get
    • path:
    • operation: SomeOperationName
    • parameters: userId,Name,title
    • response_schema:
  • pucc add-trigger
  • pucc add-connection
  • pucc schema -c
  • pucc add-policy
    • Listing all Policies

Folder Structure Created by PUCC CLI

│   ├── connectors
│   │   ├── freeagent
│   │   │   ├── basemeta
│   │   │   │   ├── freagent.properties.json
│   │   │   │   ├── freeagent.base.json
│   │   │   │   └── icon.png
│   │   │   ├── definitions
│   │   │   │   └── createSubscriptionReqDto.json
│   │   │   ├── parameters
│   │   │   │   └── projectStage.json
│   │   │   ├── policies
│   │   │   │   └── default.json
│   │   │   └── resources
│   │   │       ├── contacts
│   │   │       │   ├── get-GetContacts copy.json
│   │   │       │   └── post-CreateContact.json

Usage

Split Connector

 pucc split --sourceFolderPath "/Users/NirmalK/projects/microsoft/pucc-cli/shared_freeagent-5f9efd50f3eb6b19ac-5fa7ba4a50058013f4"  --targetFolderPath "/Users/NirmalK/projects/microsoft/pucc-cli/connectors/freeagent" --name freeagent

Build Connector

 pucc build --sourceFolderPath "/Users/NirmalK/projects/microsoft/pucc-cli/connectors/freeagent" --name freeagent

Create New Connector

Deploy or Update a Connector

Validate a Connector

Motivation

I have been working on building custom connectors for more than a year and i faced the challened of developing the swagger.json file manually for a API which has almost 200+ resources. It's practically impossible to scroll through a 10K lines of swagger file.

This is mainly targetted for developing connectors for the Power Automate Custom Connectors. But can be used in generic way to split and bundle.

Contributors

Contributors welcome. Please send a PR or open a Issue if needed.