Apps Development FAQ

Version 7

     

    Git / Command Line Tools

     

    Many git and jiveapps command line issues are related to SSH key mismatches, or misconfiguration. If you cannot create apps, or are being denied or prompted for a password when trying to do git remote operations (clone/push/pull). To start debugging this, you should run $ ssh -v git@apphosting.jivesoftware.com and take note of any errors you see.

     

    Q: Why do I get asked for a password, or denied when creating a new app or doing git remote operations?

    Your SSH private key (~/.ssh/id_rsa) does not match the public key (~/.ssh/id_rsa.pub) registered on the server. To fix:

     

    1. Check to make sure you have the files ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub

        - if you do:

              continue to step 2

        - if you do not, run this command to generate them (no passphrase):

    $ ssh-keygen -t rsa

     

    2. Get a list of SSH keys you have registered with Jive App Hosting:

    $ jiveapps keys:list

     

    3. Remove the key that matches the user@name string of your ~/.ssh/id_rsa.pub file

    $ jiveapps keys:remove user@name

     

    4. Re-add your current key

    $ jiveapps keys:add

     

    You should now be able to create apps and do normal git operations. If you are still running into issues, try repeating steps 2 and 3 until you remove all listed keys, then run step 4 to add your current key and try again.

     

    Q: When trying to do git remote operations, I see "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" or "WARNING: POSSIBLE DNS SPOOFING DETECTED!", and denied.

    The apphosting server was migrated on 6/20/2011, which caused the SSH RSA key fingerprint for the server to change. To clear out the old RSA key fingerprint, run:

    $ ssh-keygen -R apphosting.jivesoftware.com

     

    The next time you run a jiveapps create or git command you will be prompted to accept the new RSA key fingerprint. Once you accept the new RSA key fingerprint the git remote commands (clone/push/pull/fetch, etc) should work again.

     

    Q: When trying to install the Jiveapps gem, I see "ERROR:  Could not find a valid gem 'jiveapps' (>= 0) in any repository" or "Errno::ETIMEDOUT: A connection attempt failed".

    The "gem" command is not able to connect to "http://rubygems.org". Are you behind a firewall and using an HTTP proxy when browsing the internet? This may be the case if you are at work on a corporate network. If so, and you know the URL to your http proxy, you can pass it on the command line when running the gem install command like so:

    $ gem install jiveapps --http-proxy [PROXY-URL]

     

    Q: On Windows, when running ssh -v git@apphosting.jivesoftware.com, I see the error "No supported authentication methods available".

    This may happen if you are trying to use Plink/Pageant for SSH key management. Revert to using open-ssh by setting GIT_SSH to point to your ssh.exe path.

    $ declare -x GIT_SSH="C:\Program Files\Git\bin\ssh.exe"

     

    Q: On Ubuntu, when running ssh -v git@apphosting.jivesoftware.com, I see the error "Agent admitted failure to sign using the key.".

    Run the command below and try again (related note: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/201786):

    $ ssh-add ~/.ssh/id_rsa

     

    Q: If I delete the local copy of the app from my hard drive, how can I get another copy?

    Use the following command to clone the app from the remote Git repository:

    $ jiveapps clone app-name

     

    Q: How do I reinstall an app if I delete it from my dashboard?

    Use the following command to install an app to the sandbox from the command line:

    $ cd app-name # go into the app-name dir on your local machine

    $ jiveapps install app-name

     

    Q: I ran "jiveapps create app-name" and step 3 failed with "Step 3 of 4. Creating local Git repository and push to remote: FAILURE". I don't get any sandbox URLs or OAuth credentials. How do I fix it?

    See answer to above question, "Why do I get asked for a password, or denied when creating a new app or doing git remote operations?"

     


     

    OAuth

     

    Q: Why do I get a 403 response with "Client id <your app id> of type DEVELOPER_APP not found." in response body as a result of a signed request?

    The most likely cause of this error is due to installation of your application through the "Jive Apps Market" installer rather than through "jiveapps install" command line. Do the following to fix:

    • Remove your app from all dashboards.
    • Install it through "jiveapps install" command line tool.

     

    Q: How to diagnose a "signature_invalid" response with a 401 response code?

    The most common causes are:

    • Consumer secret used is not correct.
    • If it is a POST request and the Content-Type is application/x-www-form-urlencoded, be sure to include all parameters both from query string of URL used to post and the form parameters from POST body.
    • Check if the base string that Jive apps gateway used to sign the request (can be found in response body) and the base string you used to create signature in your validation code exactly match.

     


     

    REST API

     

    Q: How can I access Jive Core REST webservices not from an installed app but from an external client (e.g. home server)?

    The REST accessible version of the Jive Core API is documented at http://docs.jivesoftware.com/apireferences/core/reference/v2/index.html and covers the same functional capabilities that the JavaScript API does.

     

    Details of authentication will vary across Jive installations (and, indeed, any particular instance might or might not be accessible from outside a firewall), but typically HTTP Basic over HTTPS is supported.

     

    curl --basic -u username http://<hostname>/api/core/v2/...  

     

    If you are getting a 401 that is likely from the server, your app is probably not sending the right Authorization header. If you run curl with "-v" option you can see the value of Authorization header, that value is what your app should be sending.

     


     

    Misc

     

    Q: Only the admin is able to view an add-on that was just installed; the "only visible by me" box has been unchecked. I'd like everyone to be able to view/see it.

    This is due to caching on the server. It will be viewable by everyone when that cache is updated or can be forced to clear by having the administrator that installed the add-on log out and then log back in again.

    Source: Re: App development - Problem with setting app productive

     

    Q: How do I get container information (context of the space, group, project of the app)?

    Use the osapi.jive.core.container.getLaunchContext(function(resp){}); callback to get details of the place your app is in.