Giter Site home page Giter Site logo

api-service-orchestrator's Introduction

API Service Orchestrator (apiso)

overview

status:

  • broken due monorepo upgrade
  • resolution eta: July 29, 2024

features:

  • connect and CRUD to multiple services using personal secrets
  • data manipulation utility libraries

services

  • claude
  • clickup - next (supports oauth + api key)
  • google
  • github (starred repos)
  • google
  • google-drive
  • google-fi
  • google-fit
  • instagram (saved bookmarks)
  • linkedin
  • raindrop
  • reddit (saved posts)
  • samsung-health
  • youtube (saved playlists)

App Arch

design

graph TB

subgraph Interface_Layer["Interface Layer"]
  CLI[CLI Interface]
end

subgraph Command_Layer["Command Layer"]
  CPC[Cross-Package Commands]
  CR[Command Registry]
  PC[Package Commands]
end

subgraph Service_Layer["Service Layer"]
  SR[Service Registry]
  YouTube[YouTube Service]
  Raindrop[Raindrop Service]
  OtherServices[Other Services]
end

subgraph Core_Module["Core Module"]
  API[API Module]
  Auth[Auth Module]
  Utils[Utils Module]
  Connectors[Connectors Module]
end


CLI --> CR
CPC --> CR
PC --> CR
PC --> SR
SR --> YouTube
SR --> Raindrop
SR --> OtherServices
YouTube --> API
Raindrop --> API
OtherServices --> API
API --> Auth
Auth --> Utils
API --> Utils
API --> Connectors
Connectors --> Utils

classDef core fill:#E7F2FA,stroke:#2C3E50,stroke-width:2px;
classDef service fill:#E5F5E0,stroke:#2C3E50,stroke-width:2px;
classDef command fill:#FCE4EC,stroke:#2C3E50,stroke-width:2px;
classDef interface fill:#F4ECF7,stroke:#2C3E50,stroke-width:2px;

class API,Auth,Utils,Connectors core;
class SR,YouTube,Raindrop,OtherServices service;
class CR,CPC,PC command;
class CLI interface;
Loading

dir

/packages
  /cli - Implements the command-line interface, exposes commands module
  /commands - Defines and implements executable commands, contains dev script for quick use
  /core - Aggregates and re-exports foundational modules (API, Auth, Utils)
    /api - Provides base API functionality for making network requests
    /auth - Manages authentication strategies and token handling
    /connectors - Manages connector methods and tools
    /utils - Contains utility functions used across the project
  /services - Contains service-specific implementations (e.g., Raindrop, YouTube)
    /sample
    /raindrop
    /youtube

TODO

  • resolve breaking changes for each module
  • jest
  • standardize error handling
  • readme for each service (setup + auth)
  • resolve dependencies mis-alignment (yarn explain peer-requirements)
  • generate new package/service script
  • add clickup support (oauth and api key)
  • add claude support (oauth and api key)
  • youtube: bulk manage descriptions
  • youtube: delete playlist
  • migrate commands to 'command' package
  • migrate auth logic to 'auth' package
  • migrate utils logic to 'utils' package
  • dev dependencies: prettier, eslint, ts-node
  • yarn workspaces
  • yarn
  • re-structure packages
  • typescript
  • name
  • git init + github
  • [BUG] resolve server staying open after getPlaylists has returned result
  • get videos for each playlist
  • create raindrop for each playlist.item with playlist name and resources as tag
  • add raindrop to _Resources collection
  • [BUG][GOOGLE] resolve refresh token
  • pagination
  • clean repo

setup and config

  • raindrop: add api-key to .env
  • google: add client secret, client key to .env

Background

competitors

modules:

core = api + auth + utils

package = api(service)

commands + core(service-package)

cli --> commands

api-service-orchestrator's People

Contributors

bgreen280 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.