user3242743
user3242743

Reputation: 1851

Creating a Heroku add-on

I would like to integrate my cloud service in Heroku as an add-on. I read the available tutorials on how to do this, but it is still not clear. https://devcenter.heroku.com/articles/building-a-heroku-add-on#provisioning

I couldn't understand the role of the application that we create from a template (Sinatra for example) using kensa. Is it an intermediate between Heroku and the cloud service?

thanks in advance.

Upvotes: 0

Views: 119

Answers (2)

Proffard
Proffard

Reputation: 36

Bare minimum API routes for heroku add-on based on your Cloud service:

  • POST request to '/heroku/resources' - for provisioning
  • DELETE request to '/heroku/resources' - for deprovisioning

If you really want to sell it to heroku users, then you should do more stuff:

  • add support for heroku single sign-on this is one more API route: POST to '/heroku/sso', but you can change it in addon-manifest.json file.
  • PUT '/heroku/resources/:id' for Plan change request. Note that ':id' is an id which you provided heroku in your response during provisioning.

If you implement SSO, then user can click on your add-on on heroku instance's resources page and redirect directly to your service bypass any login forms. You can show just short info about user's resource in the page after SSO.

Upvotes: 1

Proffard
Proffard

Reputation: 36

Actually, Heroku needs 2 things:

  1. addon-manifest.json file where described all information needed for Heroku. And this json file contains 2 important urls:
    • 'base_url'
    • 'sso_url'
  2. Application which will server heroku-specific API and responds wit corresponding JSON on provisioning/deprovisioning/planchange requests. These request point to 'base_url'.

So, if you own your Cloud service code, and can add new API endpoints, then you don't need any application based on kensa-template: add necessary API controllers directly in the service.

But if you can't upgrade the cloud service, then you're right, kensa-template is a ready to use with heroku intermediate.

In case of sinatra template, you just need to put necessary API calls to your cloud service in "# provision" method of app.rb file, deploy app somewhere and do 'kensa push' for your addon-manifest.json (don;t forget to update base_url to yours)

Good luck!

Upvotes: 1

Related Questions