Deploying a secret certificate file to Heroku from CI (Codeship) - heroku

An app I am building integrates with a 3rd party api. For access to this api it authenticates via oauth using the RSA-SHA1 signature method which requires a certificate file.
The app is continuously deployed on heroku (php) using codeship.
I don't want to check the certificate into source control for a variety of reasons but need a way to copy the certificate to the production dyno every time the app is deployed. This is because Heroku dynos are stateless so revert themselves when the app is deployed (as I understand it).
What is the best way to copy this certificate to my dyno? I thought of using a command like this but it fails to work:
heroku run "echo \"${CERTDATA}\" > ./storage/certs/my_cert.pem"
I could store the actual certificate data in an environment variable on Codeship so it would be always available.
Alternatively I could create the cert file in Codeship and then force add it to the git deployment to Heroku. Can anyone give any guidance here?

Why not just store the actual certificate data in an env var on Heroku?

Related

Heroku: cannot login to my hosted app using metamask

I want to deploy my blockchain based decentralized application on heroku.
It has been deployed but when I try to login using my metamask account the account shows as null. It works on my local machine but not on heroku.
I do not want to clutter my question with code so I am sharing a link to the code
Code that is deployed on heroku
Finally figured it out. I was documenting the code for github and realized that I did not whitelist the app url in the metamask settings.

Configure APNS on Parse Server

I'm trying to migrate from Parse.com service to a self-hosted Parse Server, and it's been a bit difficult.
Basically I set up my server like this:
Run $ npm install -g parse-server
Set env vars (PARSE_SERVER_DATABASE_URI, PARSE_SERVER_MASTER_KEY, PARSE_SERVER_APPLICATION_ID)
Run $ parse-server
Everything is up and running, and I also setup a machine running parse-dashboard in a very similar way.
I had already synced the database and had no problems with it.
The problem is that when I try to send a push notification, I get the message:
Missing push configuration
I believe that's connected to the APNS settings. In Parse.com dashboard we can add the APNS certificates, but on the self hosted dashboard there is no such option (or I couldn't find it).
What am I missing? How do I set theses things up?
I believe that running parse-server without the recommended Express wrapper does not give me full control of everything I needed to configure the application.
I created an Express app, started the serving using the guide #thailey01 suggested and now it works.

How to git push heroku master by using hubot on hipchat?

I installed hubot, heroku and hipchat. I deployed Hubot to Heroku and I tested on hipchat, I typed some command line example: #hubot help, #hubot image me "hubot".... and It worked fine.
But in my project, I need use hipchat to deploy my project to heroku. Example when I type on hipchat is: #hubot deploy app, then my project will be deployed to heroku (instead of tying: "git push heroku master" on Terminal). Please help me, I really thank you so much!
This is a very broad questions. There is no single answer.
For sure, you need a deployment service that performs the deployment. Hubot should ping the deployment service when you send the deploy command.
The deployment service should have access to your repository and Heroku account and perform the git push command for the deploy. The deployment service may have a local clone of your project, or download it from some centralized location (E.g. GitHub) and perform a push to Heroku.
The deployment service can be a server you control, a third party service such as this one, the server where Hubot is running (not ideal).
Heroku also offers Dropbox sync and is experimenting deploy from GitHub. In this case, the deploy doesn't require a deployment service (or to be more correct, the deployment service is in fact Heroku). Hubot would simply trigger a new synchronization at Heroku, as long as Heroku is connected to either GitHub or Dropbox (depending on where the app is stored).

Are different certificates used automatically

I'm building an app that uses Parse to send push notifications. Currently I am in beta and have uploaded both a development and production push certificates. Client side, I add a bool to the Installation object to designate if the client is running a beta version.
When I send a push notification with Cloud Code how do I specify which certificate to use? Is it automatically selected for me? What happens when my app is in production simultaneously with my beta?
I don't use Parse, but I found this in their tutorial :
Note that once you have uploaded a production push certificate to Parse, you will only be able to target devices using a distribution provisioning profile. Devices running an app signed with a development provisioning profile will need to install the newly provisioned build again.
Based on this quote, you can't use Parse simultaneously for both development and production push notifications.

Connect to a Heroku app after directory (and all other data) deleted on local machine

I lost all the data on my localmachine (Macbook Pro) and, to make matters worse, the repo for a Rails app hosted on Heroku has also been deleted on github. Since I lost all the data on my localmachine, whatever security keys I had installed have also been deleted so if I try to connect to Heroku it won't even recognize me. What can I do in this situation to download the app and export the database?
Are you still able to log into heroku.com? If so, you should be able to set up the heroku CLI again with a new public key. Then you should be able to use heroku git:clone APP to get the code from heroku.
With your database, there should be options for managing it on heroku.com or via the heroku CLI (e.g. heroku pg:pull if you're using postgres).

Resources