Giter VIP home page Giter VIP logo

daikoku's Introduction

Daikoku

Build Playwright tests Download

Daikoku is the missing developer portal for Otoroshi written in Scala and developed by the MAIF team .

Reference Documentation

The reference documentation is available at https://maif.github.io/daikoku/

Community

You can join these groups and chats to discuss and ask daikoku related questions:

  • Issue tracker: github: MAIF/daikoku/issues
  • Pull request: github: MAIF/daikoku/pulls
  • Chat room: Join the chat on Discord

Contributing

Contributions are very welcome!

If you see an issue that you'd like to see fixed, the best way to make it happen is to help out by submitting a pull request implementing it.

Refer to the CONTRIBUTING.md file for more details about the workflow, and general hints on how to prepare your pull request. You can also ask for clarifications or guidance in GitHub issues directly.

License

Daikoku is Open Source and available under the Apache 2 License.

daikoku's People

Contributors

baudelotphilippe avatar btxgear avatar dependabot[bot] avatar helakaraa avatar mathieuancelin avatar quentinovega avatar snyk-bot avatar zwiterrion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daikoku's Issues

Billing Payment support

  • if payment enabled for plan, provide widget to actually pay a bill (for consumers)
  • handle trial period usage for stripe subscription
  • provide payment information - get stripe information via API (for providers)
  • provide bills as pdf -- basically a link to stripe (for consumers)
  • email notification when a new bill is available with bill link (for consumers)

Third-Party Payment module support

use an actual payment service like stripe.

  • setup stripe in tenant settings
  • enabled paiement module in plan with a payment possibility
  • handle plan type changes
  • handle prices change (???)
  • handle plan deletion => handle subscription deletion

apis can be "starred"

a starred api is necessarily in top of list
star an api is an action of user

maybe "tenant admin" can pin an important api for all users

Init Daikoku from Otoroshi

It could be cool to add a wizard to initialize daikoku from a previous instance of Otoroshi.

  • scan oto groups and suggest to create api (and team)
  • scan apikeys to create DK subscriptions (and teams)

after validate the wizard, it will be necessary to update all api/plan/teams with non mondatory information (description, documentation...)

add *** for the password

When I Create a new user, the "Set password" modal doesn't hide the information (type of input ...)

allow users to create teams

  • users can create teams from frontend (My teams component)
  • user who created team is admin of it
  • admin can add members (like normal way)
  • added members receive notification to accept addition
  • users can accept or reject addition on team notification
  • add this new way to add members on teams for admin team edit

Integration API

Will allow to build public facing website to distribute API documentation and subscriptions

V1

  • read only api to only get informations about apis
  • fake subscription api (based on emailing)

V2

  • identity api to create user and login
  • subscription api
  • apikeys management api

V3

  • payment api

Add a Tenant Administrator level of permission

Tenant administrator have same level of permission of DaikokuAdmin but just for a tenant.
He can't manage users, tenants, session & import/export (all of Daikoku Administration part of back office).

Automatic ApiKey Integration

  • Generate automatic integration token foreach subscribtion
  • Add an admin api to find subs by integration token
  • Add new selector to choose integration type for plan (apikey or automatic -- add Private)
  • Update UI with integration process: if apikey just token is display (except for admin)
  • Update UI to hide private plans for another team than admin / update subscription process to use new plan subscription process and to protect private plans subscription
  • move selector to choose subscription type to plan from api(manual or automatic)
  • Hide apikey for all automatic integration subscription (admin can see the apikey)
  • Generate events each time subscription/apikey is changed (creation, rotation disabling)
  • Allow users to choose automatic integration for previous or non automatic integration apikey (in this case, regenerate secret after the choice)
  • Update documentation

FIX upgrade bugs

  • if user.lastTenant is deleted, it's completly impossible to connect to DK ==> set to null user.lastTenant for all user after tenant deletion.
  • team assets crash
  • display more informations (No teams ?)

image

  • Translation
    in http://.../bobbys-team/settings/apis/bobby-api-2/plans

image

  • Translation

image

image

image

  • subscription.rotation is null
    --> TeamApiKeysForApi.js:329

Billing job

This job should gather information about billing periods of subcriptions and issue bills according to it

  • run job with consumption job
  • check end of payment period for each subscription with a thirdPartyPayment sub id
  • send consumption information if needed & run bill creation
  • send information to subscribers

Improve Creation of a new User

If I create a new User, I can click on "Create" again and again => "Conflict - The resource already exists"

Is it possible to redirect to the Users page after the creation or use the Toastr or change the Create btn as Save ... ?

Completely remove currentTeam

  • from JS frontend (should not be used)
  • from JS backoffice (should use route id instead of object id)
  • from JS adminbackoffice (should not be used)
  • from controller actions
  • from DB

Let Daikoku manage api environments

With the help of a wizard, it could be nice to create all of work environements for an api

  1. Inform How many environments to create
  2. select otoroshi service group
  3. for each env, associate it with a service (of the oto service group), and name the env to create the right plan (inform mandatory proporties for a new plan ex: type)
  4. at the end, inform user that all oto service need the same exposed domain or we can give the url to oto
  5. on save, all service in otoroshi are updated to accept one tag in...

team apis page broken

this page present the same apis than home page...independently of the team selected

Blog tab for api

  • New tab in api page to display a simple text for user information (realease for exemple)

  • it would be good to inform all the teams that have subscribed to the API after a new post with a notification

Use Otoroshi apikey rotation

  • Add new option on plan to force secret auto-rotation for apikeys
  • Add option on apikeys to choose secret auto-rotation
  • Make the synchro between otoroshi and daikoku take into account apikey rotation (and change secret)
  • update apikey by webhooks ?

Issues tab for api

  • public access
  • questions/answers system (like github)
  • open/closed filter
  • issue categorized with label
  • notification after messages
  • notification with links to issues/comments

versioning apis

use api version to use same apikey for versioned service.

Better feedback on form errors

  • account creation
  • password forgotten
  • user creation/update
  • myProfile update
  • team creation/update
  • otoroshi settings creation/update
  • tenant creation/update
  • asset post (team & tenant)

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.